我的应用程序可以反编译以显示字符串常量吗?

时间:2017-06-16 14:12:01

标签: java android string security decompiling

我的Android应用程序中有一个私有API密钥用于某些领域 - 是否有办法阻止用户以某种方式进行逆向工程或反编译Java以查看该密钥是什么?将密钥作为静态字段放在类中是不安全的?将它作为字符串资源放在strings.xml中更安全吗?或完全不同的东西?或者根本不可能阻止有足够动力的用户找到它?

2 个答案:

答案 0 :(得分:3)

不仅可以,它甚至都不会很难。

你可以通过不将它作为字符串存储来使它变得更难 ,而是作为一系列在运行时转换为字符串的数字(可能以某种方式混淆它)。

但答案是

  

或者是否根本无法防止有足够动力的用户找到它?

是:对,它根本不可能。

答案 1 :(得分:-1)

最好将String作为常量包含在类文件中,并使用String obfuscation以及使用某些免费或商业混淆器的各种其他技术对其进行模糊处理。这是你能做的最好的事情,你会得到相当的拯救。您可以通过反编译并尝试查找密钥来仔细检查自己,就像您不知道密钥一样。你会看到你的保护有多好。