关于安全性:在Java源代码中隐藏密码

Hide password in Java source code

本问题已经有最佳答案,请猛点这里访问。

我需要将密码隐藏在源代码中,为了降低反编译的风险,有哪些可能的方法可以混淆密码?

例如

1
final String password ="secret";


别麻烦了。

你的普通用户无论如何都不能或不愿意解压类文件,当目标是一个单一的数据块时,一个有动机且技术娴熟的攻击者不会被混淆所阻挡。它所需要的只是一个如此有动机和熟练的攻击者,全世界都知道密码。

如果您的安全依赖于混淆密码,那么您已经丢失了。


首先,我不会将变量命名为password

第二,我不会保留原始格式,而是对其进行编码。

第三,我使用char[]而不是String(因为字符串驻留在字符串池中)。

当然,最好的选择是根本不把它保存在代码中。


使用数据库或文件保存密码。这里有一个很好的例子。但是你仍然需要在某个地方存储一个主密码来加密你的密码。TT很难保护它不被发现,也很难被误用来解密你的密码:(。


使用外部方法加密密码,这是一种可以在代码中解密并将密码(加密)存储在代码中的方法。