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