首頁  >  文章  >  Java  >  如何將敏感字串隱藏在混淆程式碼中?

如何將敏感字串隱藏在混淆程式碼中?

DDD
DDD原創
2024-10-30 16:12:03574瀏覽

 How Can Sensitive Strings Be Hidden in Obfuscated Code?

在混淆程式碼中隱藏敏感字串

混淆程式碼以保護專有資訊是一種常見的做法,但敏銳的眼睛仍然可以發現隱藏的字串。要有效隱藏敏感數據,請考慮以下技術:

編碼與加密

如果目標是阻止隨意檢查,編碼就足夠了。 android.util.Base64 類別提供了方便的方法。然而,編碼提供的安全性可以忽略不計。

為了更好地防範攻擊者,建議使用 AES 等密碼進行對稱加密。 javax.crypto.Cipher 類別提供了其用法範例。

手動加密和解密

按照以下步驟手動實現加密和解密:

  1. 使用已知金鑰加密字串。
  2. 更新程式碼以使用字串的解密版本(例如,使用 MyDecryptUtil.decrypt(encrypted, key) 而不是 mySecret = "http:// example.com")。

第三方 DRM 解決方案

考慮使用第三方 DRM 解決方案,例如 Google 的授權伺服器。與自滾動解決方案相比,它們提供了潛在的安全優勢,但仍具有類似於手動加密和解密的限制。

R 類別字串

您在中提到的 R 類別字串您的程式碼是對資源的引用。像 ProGuard 這樣的混淆器不會混淆 R 類別本身,而是混淆對資源 ID 的參考。它們保持相同的數字,但更改了指向實際資源的映射。

在本例中,2130903058 引用了版面配置檔案。如果沒有反編譯的R類,你無法直接檢索它所代表的資源,但它仍然是資源的二進位資料的位址。

以上是如何將敏感字串隱藏在混淆程式碼中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn