哈希不能被设计为无法解密,这就是为什么它们通常被称为“单向哈希”而不是仅哈希的原因。
而是…
生成一个新的密码哈希,将新的密码哈希存储在旧密码中,然后将新生成的密码通过电子邮件发送给用户。
生成一个新密码,对其进行哈希处理,并将其存储在临时密码字段中,然后当用户使用该密码登录时,提示他们输入永久的新密码。
生成一个随机数,将其存储在该随机数的字段中,然后通过电子邮件向用户发送带有该随机数的链接,该链接将使他们能够访问页面以输入新密码。
第三种选择可能是最好的选择,因为它不会在普通视图中为阅读用户电子邮件的人留下实际的密码(临时密码或非临时密码),并且由于使用的是随机数,因此一旦使用就无法使用被恶意用户再次使用。
哈希用于密码的原因是专门用于防止将其存储为恶意用户仅通过查看数据库即可确定密码的形式。
编辑:“所以我必须向管理员显示原始密码。”
如果您对密码进行哈希处理,则 不可能 。通常,允许管理员查看用户的密码实际上是一个 坏主意
,因为很大比例的用户倾向于将相同的密码用于多项 *** 作,而一件事(例如,公司网络)的管理员可能不会其他许多事情的管理员(例如,用户的在线银行系统)。
MD5不是加密算法,而是哈希算法。 两者是不一样的。加密被设计为可逆的(因此使用了补充术语“解密”),而哈希设计为仅单向的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)