我有一个使用SHA1加密用户密码的应用程序,并将哈希值存储在数据库中。我想知道如果用户忘记了密码是否可以通过电子邮件发送给他们?或者我是否必须以纯文本形式存储密码才能实现此目的。提前谢谢!
答案 0 :(得分:4)
不,如果你已经对它进行了哈希并仅存储了哈希,那么你将无法向他们发送密码。这真的是哈希的原因之一;因为它很难从哈希回到原来的。
您也不希望以明文保存密码。能够将它发送给他们可能是有用的,但是你可以为可能访问你的数据库的人保留一大堆密码。
通常,如果他们忘记密码而不是检索现有密码,他们必须将密码更改为新密码。
答案 1 :(得分:1)
没有加密机制是100%安全的,因此您可以破解密码并发送它们,但请考虑一下您正在尝试做什么。如果您想要安全地存储密码,那么这意味着以明文形式提供密码是不可行的。如果你以明文形式存储它们,那么这首先否定了加密密码,更不用说在明文电子邮件中发送密码的安全漏洞。
相反,请考虑直接使用bcrypt,has_secure_password(使用bcrypt)或devise(将执行密码重置)。