我需要在源代码中隐藏密码,有哪些可能的方法来混淆密码以降低反编译的风险?
例如
final String password = "secret";
不要打扰。
无论如何,您的普通用户将无法或愿意反编译类文件,并且当目标是单个数据时,有动力且熟练的攻击者不会因混淆而受到阻碍。所需要的只是一个这样积极且熟练的攻击者,全世界都知道密码。
如果您的安全取决于混淆密码,那么您已经输了。
首先,我不会命名我的变量password
。
其次,我不会将其保留为原始格式,而是对其进行编码。
第三,我会使用 achar[]
而不是String
(因为字符串驻留在字符串池中)。
当然,最好的选择是根本不将其保留在代码中。
使用外部方法加密密码,该方法可用于在您的代码中解密并将密码(加密)存储在您的代码中
使用数据库或文件来保存您的密码。这是带有示例的非常好的帖子。但是您仍然需要在某处存储一个主密码来加密您的密码。很难保护它不被发现和滥用来解密您的密码:(。