我目前正在编写自己的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?我该如何使用它?有更多信息。
你可能经常听到的另一个建议是不要使用MD5
。SHA1
相对更强,您只需要更改数据库中的密码字段即可接受40个字符的字符串。