gpt4 book ai didi

android - 安全地保存常量值

转载 作者:太空狗 更新时间:2023-10-29 16:39:24 25 4
gpt4 key购买 nike

我正在开发与安全数据通信相关的 Android 应用程序。我在我的应用程序中使用了一些常量值,并将它们保存在 constant.java 类中。我不希望对这些值进行逆向工程,但即使我使用的是适用于 Android 的 ProGuard,对于专家来说,逆向代码也很容易。这些常量非常安全。我可以使用属性文件或 res 文件夹中的任何文件,但这种方法一点也不安全。

谁能告诉我如何进行?是否有任何文件格式可以保存我的常量或防止属性文件被反向工程。是否有任何选项,例如将其保存为 .py python 文件格式并从 Android 代码中读取?

最佳答案

要在设备上安全地存储 secret 常量从根本上说是不可能的,因为黑客可以通过静态和动态分析对它们进行逆向工程。你只能通过混淆值来让它变得更困难:

  • 用某种算法计算它们,而不是按字面意义存储它们。即使是微不足道的算法也可能会增加提取常量所需的时间。
  • 在整个代码中分配值的组成部分。
  • 使用本地代码。逆向工程通常更难,至少在代码及其 API 足够大和复杂的情况下。
  • 也许可以研究一下白盒密码学,它试图将常量 key 编织到密码算法的实现中,从而无法提取常量 key 。这仍然是研究和高端商业解决方案的领域。

您可能会从 my presentation 中获得一些可以自己应用的想法来自Scott Alexander-Bown's presentation在伦敦的 Droidcon。

您还可以使用商业混淆器,如 ProGuard 的扩展版本,DexGuard ,使用字符串加密和类加密等技术为您强化代码。

保护的有效性取决于您可以投入的时间和精力、您的产品的值(value)、黑客愿意花费的时间和精力、他们的专业知识等。

类似问题:Best Practice for storing private API keys in Android

(我是ProGuard和DexGuard的开发者)

关于android - 安全地保存常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com