什么是更好的? Password_hash vs. SHA256 vs. SHA1 vs. md5
Posted
技术标签:
【中文标题】什么是更好的? Password_hash vs. SHA256 vs. SHA1 vs. md5【英文标题】:What is better? Password_hash vs. SHA256 vs. SHA1 vs. md5 【发布时间】:2015-05-22 17:40:39 【问题描述】:salt
有什么更好的密码存储方式?
MD5:
$hash = md5($password . $salt);
密码哈希:
$hash = password_hash($password, PASSWORD_DEFAULT, $salt);
SHA1:
$result = sha1($salt.$string);
【问题讨论】:
我投票结束这个问题,因为它是关于分析安全属性并且没有编程问题。 看看***.com/questions/2235158/… 你是对的。这确实涉及安全性。据我所知,这里没有编程。 【参考方案1】:当您存储大量密码时,Salt 非常有用,否则它们就相当无用,因为它们以明文形式存储。如果攻击者设法获得了您的散列密码,那么假设他们可以得到您的盐。 使用 SHA-256,因为它是一个强大的加密哈希函数,并使用盐。但最重要的是,只需使用强密码和强哈希算法即可。
【讨论】:
【参考方案2】:你绝对应该使用 password_hash() 函数而不提供你自己的盐:
$hash = password_hash($password, PASSWORD_DEFAULT);
该函数将自行生成一个安全的盐。其他算法的哈希密码速度太快,因此很容易被暴力破解(大约每秒8 Giga MD5)。
【讨论】:
当您需要进行身份验证并且您不知道已生成的盐时怎么办?我要求学习。不改正。 没关系....使用password_verify()函数。将我的 cmets 留给有相同问题的未来用户。以上是关于什么是更好的? Password_hash vs. SHA256 vs. SHA1 vs. md5的主要内容,如果未能解决你的问题,请参考以下文章