【发布时间】:2018-10-09 12:05:24
【问题描述】:
所以,我打算编写一些 java 代码来加密和解密我扔给它的字符串。问题是试图保存加密密钥:它在 Java 代码中清晰可见,我还没有找到将它放入代码的方法。我也在这里检查了几个线程,但我还没有找到我的具体问题的答案。
tl;博士 我想知道如何在 Java 代码中安全地存储密码。
【问题讨论】:
标签: java
所以,我打算编写一些 java 代码来加密和解密我扔给它的字符串。问题是试图保存加密密钥:它在 Java 代码中清晰可见,我还没有找到将它放入代码的方法。我也在这里检查了几个线程,但我还没有找到我的具体问题的答案。
tl;博士 我想知道如何在 Java 代码中安全地存储密码。
【问题讨论】:
标签: java
tl;dr 我想知道如何在 Java 代码中安全地存储密码。
TL;DR - 没有办法在 Java 代码中安全地存储密码。
任何以可用形式嵌入代码中的密码都可以通过适当的努力和技巧进行逆向工程。
解决方案取决于您要解决的问题:
如果您尝试隐藏和使用秘密(例如密码、密钥等),并且您尝试隐藏秘密的用户控制执行平台,则没有解决方案。
如果您(或受信任的管理员)控制平台1,并且它得到了适当的保护,那么有几种方法可以提供不同程度的安全性。这些范围从将机密存储在用户无法访问的文件中,到使用 HSM(硬件安全模块)来保存机密。
重构应用程序,使秘密......以及受秘密保护的事物与不受信任的用户运行的软件部分物理分离;例如在服务器上做“特殊的事情”。
为每个用户提供他们自己的个人秘密(密钥、密码等)...可以撤销。
1 - 鉴于“root 升级”漏洞相当普遍,建议您完全不要让不受信任的用户访问该平台。但是,我怀疑这是否适合您尝试做的事情。
【讨论】: