Luk*_*ame 14 passwords hash password-protection bcrypt
bcrypt如何强大,比方说,
def md5lots(password, salt, rounds):
if (rounds < 1)
return password
else
newpass = md5(password + salt)
return md5lots(newpass, salt, rounds-1)
Run Code Online (Sandbox Code Playgroud)
考虑到它的炒作,我得到的感觉是,比我更聪明的人已经发现bcrypt比这更好.有人能解释"聪明的外行人"条款的差异吗?
主要区别 - MD5 和其他旨在验证数据的哈希函数被设计得很快,而 bcrypt() 被设计得很慢。
当您验证数据时,您需要速度,因为您希望尽可能快地验证数据。
当您试图保护凭据时,速度会对您不利。拥有密码哈希副本的攻击者将能够执行更多的暴力攻击,因为 MD5 和 SHA1 等的执行成本很低。
相比之下,bcrypt 是故意昂贵的。当真正的用户尝试进行一两次身份验证时,这并不重要,但暴力破解的成本要高得多。
bcrypt 和使用 MD5 进行多次哈希处理之间存在三个显着差异:
因此,使用 MD5 进行加盐和拉伸并不像使用 bcrypt 那样安全。这个问题可以通过选择比 MD5 更好的哈希函数来解决。
例如,如果选择 SHA-256,则输出大小将为 256 位(32 字节)。如果可以像 bcrypt 一样配置加盐和拉伸来增加迭代次数,那么两种方法之间没有区别,除了存储结果哈希所需的空间量不同。
| 归档时间: |
|
| 查看次数: |
4293 次 |
| 最近记录: |