有人认为 md5(md5)比单独使用md5更好,但有人说它没有做任何事情,有人可以帮助解决这个问题吗?我对混合反馈感到困惑。
$query="INSERT INTO `users` (`email`, `password`)
VALUES('".mysqli_real_escape_string($link, $_POST['email'])."',
'".md5(md5($_POST['email']).$_POST['password'])."'
)";
答案 0 :(得分:3)
不要使用md5哈希来存储密码。而是将password_hash函数与bcrypt结合使用。请参阅:http://php.net/manual/de/function.password-hash.php
password_hash($password, PASSWORD_BCRYPT, array('cost' => 13));
对于较旧的php版本,请查看https://github.com/ircmaxell/password_compat
答案 1 :(得分:1)
MD5将产生32个字符的哈希值 双重哈希的东西仍然会有32个字符的哈希,所以不要双md5任何东西! 如果你想要更长的哈希值(让我们打电话更安全),你应该使用sha512,漩涡等等。 有关示例,请参阅php文档中的hash() function。
所以代替md5(md5($ variable))你应该使用哈希(' sha512',$ variable)
另请注意,较长的哈希意味着更长的处理时间(=更多的CPU!)
答案 2 :(得分:0)
对于长度为512位或64字节的文本,MD5是不安全的,因为您在ist中找到了一个数学组。你做的是散列哈希。 哈希比64Byte短。所以你有一个解决方法。如果它是安全的......我不会给我这个。 您可以在Wiki下找到更多内容 好的最好的方法是不使用MD5。