【发布时间】:2016-07-26 16:33:34
【问题描述】:
我已经阅读了有关这种情况的几个主题并找到了一些解决方案,但我不太确定它们是否适合我的项目。
比如这个话题:https://stackoverflow.com/questions/10306673/securing-a-password-in-a-properties-file
在我的 Web 应用程序中,用户可以在我的主页上注册并进行操作,他必须在该主页上登录。我正在使用 SCrypt 保存密码。用户可以通过以明文形式输入密码来登录,密码将根据数据库中的加密密码进行检查。如果密码正确,则用户可以访问控制中心。
注册和非注册用户可以通过联系表格向我的电子邮件帐户发送电子邮件。
这个联系表单调用一个 Bean,它发送一封电子邮件。要发送此电子邮件,我必须将帐户信息存储在某处。
问题是,我必须解密密码。如果我将信息加密保存,则帐户验证将失败。
以纯文本形式保存密码是绝对可怕的。
我想过在应用程序启动后将密码设置到应用程序范围 bean 中的属性中,但我不确定这是否是一种保存方式。
如果需要密码,另一个选项是应用程序从中读取的文件。但是在这个文件中,密码被解密了。
保存应用程序需要的密码的最佳方法是什么?
EDIT1 06.04.2016 12:48:
我需要为我的 EmailBean 解密密码,以便 bean 可以登录到我的电子邮件帐户并发送消息。
【问题讨论】:
-
您出于什么原因/任务需要未加密的密码?保存或使用未加密的密码很可能是错误的概念。
-
您是说需要用户在登录后发送密码?
-
您可能想要调查“哈希”。粗略地说:您不是存储密码(既不是明文也不是加密的),而是它的哈希值。当用户输入密码时,将对其应用相同的哈希函数并与存储的哈希进行比较。当然,还有很多。你仍然必须安全地转移...... Salt&Pepper......等等等等。
-
@Fildor 他正在使用 SCrypt,它甚至可以加密保护哈希,所以我认为这更多是 OP 的概念问题。 :-)
-
@Vampire 哦,我明白了。谢谢。以为他只是加密了明文密码。
标签: java email encryption passwords