现在很多网站被黑了,密码哈希被盗了。 即使像LinkedIn这样的大型网站也没有安全存储密码(仅限md5)。
现在是我的问题,什么是足够安全的哈希密码方法?
目前我正在使用它:
sha512(sha512(sha512(password) + salt));
这足够安全吗?
答案 0 :(得分:1)
hash_hmac('sha512', $data , $key);
会很棒。最好使用$ key作为salt使用至少60个字符。
答案 1 :(得分:1)
很难说哪一个最好,但安全的赌注是BCrypt算法。
BCrypt不是那里最好的算法;但是,它对于绝大多数用例来说已经足够了,并且与基本的哈希和盐方法一样,即使不容易实现,也很容易实现。 BCrypt与众不同的是,它采用了Blowfish算法,而不是更典型的SHA- *算法,它具有并行速度慢得多的优势。由于用户一次登录一次,这使得测试众多密码的攻击者更难以击败算法。
答案 2 :(得分:0)
是的,这还不够安全。我个人认为最后一次sha512通话没用,但我知道意见不同。
当然,只要无法使用蛮力策略猜测密码,这就是安全的。如果用户选择4个字母的密码或其妻子的名字,则不会有任何哈希值可以保护您。
答案 3 :(得分:0)
这取决于你的盐。您是否为每个用户生成了独特的盐?盐不是常数,如果每个密码都使用相同的盐进行哈希处理,那么您就会浪费时间。
我建议使用bcrypt而不是sha512 / salt方法,它更难以暴力:http://krebsonsecurity.com/2012/06/how-companies-can-beef-up-password-security/
答案 4 :(得分:0)
使用现在使用的盐对提高安全性非常有用,我强烈建议为每个用户使用随机盐。恕我直言,你将哈希用户密码的时间越多(你可以通过在每次散列之前添加盐来提高安全性),它就越安全。我使用for循环重复256次来散列密码,这可能被认为是对未来几年的暴力行为的安全。
有点偏离主题,但我建议也要关注会话劫持(比如重新生成ssids等等)