我的Android应用程序中有一个私有API密钥用于某些领域 - 是否有办法阻止用户以某种方式进行逆向工程或反编译Java以查看该密钥是什么?将密钥作为静态字段放在类中是不安全的?将它作为字符串资源放在strings.xml中更安全吗?或完全不同的东西?或者根本不可能阻止有足够动力的用户找到它?
答案 0 :(得分:3)
不仅可以,它甚至都不会很难。
你可以通过不将它作为字符串存储来使它变得更难 ,而是作为一系列在运行时转换为字符串的数字(可能以某种方式混淆它)。
但答案是
或者是否根本无法防止有足够动力的用户找到它?
是:对,它根本不可能。
答案 1 :(得分:-1)
最好将String
作为常量包含在类文件中,并使用String obfuscation
以及使用某些免费或商业混淆器的各种其他技术对其进行模糊处理。这是你能做的最好的事情,你会得到相当的拯救。您可以通过反编译并尝试查找密钥来仔细检查自己,就像您不知道密钥一样。你会看到你的保护有多好。