我正在编写自己的CMS编码,而且我处于密码状态......
我想知道我是否可以md5
密码,然后sha1
密码呢?
像:
$password = md5(sha1(mysql_real_escape_string($_POST['passw'])));
答案 0 :(得分:6)
您可以md5
您想要的任何数据,即使之前已经过哈希。
你想要达到什么目标?
答案 1 :(得分:4)
是的,你可以。 不,它没有意义。
链式哈希函数的安全性总是等于或小于最弱算法的安全性。
即。 md5(sha1($ something))并不比sha1($ something)更安全:如果你设法打破sha1,你可以免费获得md5,因为shat($ something)和sha1($ faked_something)具有相同的价值,因此md5ing他们不会改变任何东西。
答案 2 :(得分:2)
确保在那里添加盐,这使得彩虹表更难以用于客户/用户的密码。
类似的东西:
$ hashedPassword = sha1(md5($ password)。$ salt.sha1($ salt。$ password));
盐本身可以是一个很好的长随机字符串,在您的应用程序中可以是常量,也可以是与用户一起存储的每个联系人的盐。
答案 3 :(得分:1)
如果您想要更好的安全性,则应考虑phpass之类的内容。
答案 4 :(得分:1)
你可以做到这一点,但它并没有真正的好处。如果您通过md5()
运行密码,则可以通过添加加密盐获得更高的安全性。
What is SALT and how do I use it?有更多信息。
您可能听到的其他一些建议是不使用MD5
。 SHA1
比较强大,您只需要在数据库中更改密码字段即可接受40个字符的字符串。