PHP MD5(MD5)散列

时间:2014-09-24 11:47:10

标签: php mysql mysqli

有人认为 md5(md5)比单独使用md5更好,但有人说它没有做任何事情,有人可以帮助解决这个问题吗?我对混合反馈感到困惑。

$query="INSERT INTO `users` (`email`, `password`)
    VALUES('".mysqli_real_escape_string($link, $_POST['email'])."',
           '".md5(md5($_POST['email']).$_POST['password'])."'
          )";

3 个答案:

答案 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。