保密字符串的值

Keep the value of a string secret

我的 Android 应用程序(在 Java 中)有一个字符串,它实际上是加密和解密消息的密钥。

这是一个简单的字符串,我这样声明:

final static String myKey = "THEKEY";

密钥永​​远不会改变(它永远不会显示在应用程序中,也不会通过网络或其他方式发送,它 "stays" 在应用程序中)。

拥有 APK 的人是否有办法在我的应用中获取此字符串的值?

如果答案是肯定的,确保 String 的值可以保密的最佳方法是什么?

Is there a way for people that have the APK to get the value of this string in my app ?

是的,通过反编译。

what is the best way to be sure that the value of a String can stay secret ?

将其从 APK 中删除。或者,不用担心被发现。

您可以采取一些步骤来逐渐增加检索值的难度,例如使用 DexGuard 打包您的生产应用程序。但是,这不会阻止真正想要价值的人。