首页  >  文章  >  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