加密代码中的字符串(JAPH)

时间:2016-10-18 10:06:21

标签: java password-encryption

我甚至不知道是否可能。

情景:

我的代码中有一个KeyStore的主密钥。 像

这样的东西
private static final char[] pwd = "password".toCharArray();

我还必须在反编译时保护我的“密码”。 我的意思是,至少尝试使用JAPH

之类的东西

我完全知道让我的密码安全且不可读是不可能的,但至少,我想尽可能努力。

1 个答案:

答案 0 :(得分:1)

第一种方法是在单独的文件中分发密码,并在运行时通过Properties API读取它们。简单易用。如果您添加一些base64编码,它将保护您免受脚本小孩。发布源代码只会暴露存储密码的方法。当然,代码和文件的泄漏仍然存在问题。

第二种方法非常相似。将密码保存为环境变量,并通过System.env读取它们。在这种情况下要知道密码攻击者需要访问OS才能读取密码。这使它变得有点复杂。

第三种方法是两步密码。使用第二种方法存储的第一个密码是包含主密码的AES加密文件的密码。

在我们的项目中,我们使用第二种方法。如果代码泄露(某种程度上),它可以保护我们暴露密码,但是如果有人破坏了服务器安全性......那么我们将遇到比泄露密码更严重的问题。

PS。你可以尝试使用Honey Encription来让它变得更难。攻击者不会知道他有有效的密码或只是看起来像的东西。