Bra*_*ins 0 php security password-storage
我一直在线阅读MD5不是很安全,我已经决定将我的网站切换到使用SHA512,我之前从未这样做过,所以我只是要求你检查一下我是否做得对,或者是否有另一种更安全的哈希方法可用于存储密码?
$ upass是我需要哈希的用户密码.
这是我与MD5的原始PHP:
$uname = mysql_real_escape_string($_POST['uname']);
$sname = mysql_real_escape_string($_POST['sname']);
$email = mysql_real_escape_string($_POST['email']);
$upass = md5(mysql_real_escape_string($_POST['pass']));
Run Code Online (Sandbox Code Playgroud)
这是我使用SHA的新PHP:
$uname = mysql_real_escape_string($_POST['uname']);
$sname = mysql_real_escape_string($_POST['sname']);
$email = mysql_real_escape_string($_POST['email']);
$upass = mysql_real_escape_string($_POST['pass']);
$upass = hash('SHA512', $upass);
Run Code Online (Sandbox Code Playgroud)
这里也是单词"password"的散列字符串,只是为了确保哈希工作正常.
SHA512:
b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e
MD5:
5f4dcc3b5aa765d61d8327deb882cf99
感谢您提前提供任何帮助/建议.
正确的方法是使用password_hash使用PASSWORD_DEFAULT的算法.这样,你将有一个很好的算法(bcrypt,如果你有PHP 5.5),它可以在未来的PHP版本中自动升级到更好的算法,而无需更改你的代码.密码也用盐进行哈希处理.