【发布时间】:2014-11-18 21:38:01
【问题描述】:
有人说 md5(md5) 比单独的 md5 更好,但有人说它没有任何作用,有人可以帮助如何使这更安全吗?我对混合的反馈感到很困惑。
$query="INSERT INTO `users` (`email`, `password`)
VALUES('".mysqli_real_escape_string($link, $_POST['email'])."',
'".md5(md5($_POST['email']).$_POST['password'])."'
)";
【问题讨论】:
-
您永远不应该使用 md5 来存储密码。请改用 bcrypt。
-
单个 md5() 哈希的熵是每字节数据 256 个潜在的位组合;第二次 md5() 时的熵仅限于第一个哈希的字符集,即每个字节 26 个字母数字 + 10 个数字,因此多次哈希通过减少熵来增加冲突的机会
-
有人说md5(md5在这段代码里一文不值……是这样吗?如果是的话,有没有办法让这段代码行更安全?
-
如果您使用
PHP >= 5.5,请鼓励使用password_hash。 -
查看这个 PHP 常见问题手册页 php.net/manual/en/faq.passwords.php。最好在 salt 上使用 hasing 函数。