【发布时间】:2021-06-10 21:38:48
【问题描述】:
我目前正在使用以下代码加密用户密码并将其存储在我的数据库中:
<cfset encrypted_pass = Hash(#form.pwd#, 'SHA-512')/>
有没有办法在事后解密这个密码?
【问题讨论】:
-
hash()函数是单向加密。您无法解密密码,也不应以您可以解密的方式保存密码。 -
好的。我一直在阅读有关 encrypt() 和 decrypt() 内置函数的信息。这通常不用于密码吗?
-
为了澄清阿德里安的评论和安德鲁的回答,从安全的角度来看,最好使用散列算法而不是可以解密的加密算法。这使得破解密码变得更加困难。
-
同意其他帖子。加密的密码是个坏主意。只有一个人应该永远知道用户的密码,那就是用户自己。加密和散列有两个非常不同的目的。查看cheatsheetseries.owasp.org/cheatsheets/…。几乎所有来自 OWASP 的内容都是很好的建议。
-
关于加密密码,我猜这是为了让您可以将密码发送给某人以恢复密码?不要这样做。让他们重置它,并散列新值。给他们一个有时间限制的一次性密码,让他们再次登录以更改该密码。或类似的东西。为了提高安全性,您可以做很多事情。 OWASP 备忘单有很多选择。但是没有人应该能够恢复某人的实际密码。
标签: coldfusion lucee