我可以md5(sha1(密码))吗


Can I md5(sha1(password))?

我目前正在编写自己的CMS,并且我处于密码状态。。。

我想知道我是否可以md5一个密码然后sha1它之后?

类似:

$password = md5(sha1(mysql_real_escape_string($_POST['passw'])));

您可以md5任何您想要的数据,即使它以前是散列的。

然而,这只会增加碰撞的风险,因为您现在正在处理一个较小的数据集。

你想达到什么目的?

可以。不,这没有道理。

链式散列函数的安全性始终等于或小于最弱算法的安全性。

也就是说,md5(sha1($something))并不比sha1($1something。

确保在其中也添加了盐,这会使使用彩虹表来对抗客户/用户的密码变得更加困难。

类似于:

$hashedPassword=sha1(md5($password)$盐sha1($salt.$password));

其中salt本身可以是一个很好的长随机字符串,可以是整个应用程序中的常量,也可以是与用户一起存储的每个联系人的salt。

你显然可以。我不明白你为什么不能。

如果您想要更好的安全性,您应该考虑类似phpass的东西。

你可以这样做,但没有真正的好处。如果你通过md5()运行密码,添加加密盐会带来更多的安全性。

什么是SALT?我该如何使用它?有更多信息。

你可能经常听到的另一个建议是不要使用MD5SHA1相对更强,您只需要更改数据库中的密码字段即可接受40个字符的字符串。