如何更好地使用salt
来存储密码?
MD5:
$hash = md5($password . $salt);
密码哈希值:
$hash = password_hash($password, PASSWORD_DEFAULT, $salt);
SHA1:
$result = sha1($salt.$string);
如何更好地使用salt
来存储密码?
MD5:
$hash = md5($password . $salt);
密码哈希值:
$hash = password_hash($password, PASSWORD_DEFAULT, $salt);
SHA1:
$result = sha1($salt.$string);
你应该绝对使用password_hash()函数而不提供自己的盐:
$hash = password_hash($password, PASSWORD_DEFAULT);
这个函数会自动生成一个安全的盐值。其他算法处理密码哈希得太快,因此可以太容易地遭受暴力破解攻击(大约每秒 8 Giga MD5)。
当您需要存储大量密码时,盐非常有用,否则它们就不怎么有用,因为它们以明文形式存储。如果攻击者设法获取到您的哈希密码,则假定他们可以得到您的盐。
使用SHA-256是因为它是一个密码学上强大的哈希函数,并使用盐。但更重要的是,只需使用强密码结合强哈希算法。