【发布时间】:2016-01-20 05:10:47
【问题描述】:
我有一个用户名和密码组合,我将使用它通过 java 代码访问安全服务器。
我的想法是:
- 在外部存储加密凭据
- 执行时提示用户输入解密密码
- 使用前将解密的凭据直接存储在 char 数组中
- 使用凭据连接到数据库
- 使用后用零替换 char 数组
这是执行此类任务的推荐方式吗?
我读到凭据应该存储在外部,这些应该如何存储?
【问题讨论】:
-
数据库的凭据不应该是用户的凭据...它们应该是与数据库对话的应用程序的凭据。
-
您能详细说明一下吗?与用户相比,应用程序将具有不同的凭据?这是否仍然意味着这些凭据可能会被盗,并且数据库上的数据可能会泄露?
-
我用我的回答详细说明了这一点,虽然不完整,但更彻底地解决了这个问题。
-
就您在此处发布的代码而言,我建议您使用代码审查网站:codereview.stackexchange.com。一件事让我立即跳出来,你正在使用“随机”作为你的盐,但“随机”在密码学上并不强。
标签: java encryption passwords