因此,我打算制作一些Java代码来加密和解密我扔给它的字符串。问题是试图保存加密密钥:它在Java代码中清晰可见,而我还没有找到将其放入代码中的方法。我还在这里检查了多个主题,但没有找到我特定问题的答案。
tl;博士 我想知道如何在Java代码中安全地存储密码。
答案 0 :(得分:1)
tl; dr我想知道如何在Java代码中安全地存储密码。
TL; DR-无法用Java代码安全地存储密码。
以适当的形式嵌入到您的代码中的任何密码都可以通过少量的努力和技巧进行反向工程。
解决方案取决于您要解决的问题:
如果您试图隐藏和使用机密(例如密码,密钥等),并且您试图从执行平台的控制中隐藏机密,那么就没有解决方案。
如果您(或受信任的管理员)控制平台 1 ,并且该平台已得到适当保护,则可以采用几种具有不同程度安全性的方法。从将机密存储在用户无法访问的文件中到使用HSM(硬件安全模块)来保存机密。
重构应用程序,以使秘密...和受该秘密保护的事物与不受信任用户运行的软件部分物理上分开;例如在服务器上执行“特殊操作”。
为每个用户提供自己的个人机密(密钥,密码等)...可以撤销。
1-鉴于“根升级”漏洞相当普遍,因此建议您完全禁止不受信任的用户访问该平台。但是,我怀疑这是您尝试执行的操作的一种选择。