使用MD5与SHA-1进行双哈希

时间:2014-02-26 02:07:45

标签: php mysql sql hash

以下代码创建MD5哈希,然后使用SHA-1再次哈希 - 这是否安全?

$user = $_POST['username'];
$username = mysqli_real_escape_string($mysqli, $user);
$pass = md5($_POST['password']);
$password = sha1($pass);

这会增加碰撞的可能性吗? 有没有其他方法可以哈希并且处理密码的速度非常快?

2 个答案:

答案 0 :(得分:2)

单次散列没有实际优势。

请注意,MD5现在被视为已损坏,因为它很容易受到许多实际攻击,并且不建议使用SHA1等算法进行密码散列。

有专门为密码散列设计的算法,例如PBKDF2。您应该使用PBKDF2作为哈希 - 请参阅this question on security.stackexchange.com.

答案 1 :(得分:0)

使用sha2 https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_sha2

mysql> SELECT SHA2('abc', 224);
  

可以认为SHA2()在加密方面比MD5()或更安全   SHA1()。

     

在MySQL 5.5.5中添加了SHA2()。