盐渍化,从md5变为sha1

时间:2009-10-18 13:01:00

标签: php

我的算法看起来像这样:

$new_password = sha1($salt . $password . $email);

它运作良好,但我试图改变为sha1,因为我听到它更好,但它不会工作。那是为什么?

寄存器:

//generate a strong unique salt
$salt = uniqid(mt_rand());

$new_password = sha1($salt . $password . $email);

然后我在登录时重新拍摄

3 个答案:

答案 0 :(得分:3)

您是否使用哈希密码存储盐?检查哈希时需要使用相同的盐 - 每个用户都应该有他们的电子邮件地址,盐和哈希存储。

答案 1 :(得分:0)

是的,sha1是比md5更好的哈希。很多时候,md5已经足够了......真的,你网站的“不安全”程度更多地取决于其他因素。

答案 2 :(得分:-1)

你想要一个盐的常量字符串,例如

$salt = "iodized sea salt"
编辑:这里的评论者和贬低者似乎不理解盐的概念。使用恒定盐当然不会破坏盐的目的,这使得您选择哈希算法(“SHA1 with such-and-such salt”)是私有的。这种盐可能很长,并且它的选择比uniqid(mt_rand())具有更多的熵。任何时候你都不能强奸长盐。如果您不清楚计算机安全性,但不提供任何其他好处,那么每用户盐可能会让您感觉更好。