2012-06-21 247 views
0

这些天来很多网站被黑客入侵,密码哈希被盗。 即使像LinkedIn这样的大型网站也没有安全地存储他们的密码(只是md5)。什么是安全存储密码(散列)的最佳方式

现在是我的问题,什么是足够安全的方式来散列密码?

目前我使用的是这样的:

sha512(sha512(sha512(password) + salt)); 

是不是足够安全?

+2

这是否真的需要一个新的问题HTTP:??//stackoverflow.com/search Q =最佳+密码+店 – Cheekysoft

回答

0

是的,这足够安全。我个人认为最后的sha512电话没用,但我知道意见不同。

当然,只要密码不能用蛮力战术猜测,这是安全的。如果用户选择4个字母的密码或他们的妻子的名字,则散列数量将无法保护您。

0

使用盐一样使用的是现在是一个非常好的提高安全性,我强烈建议使用随机为每个用户提供盐。恕我直言,更多的时间你会哈希用户的密码(你可以通过在每次哈希之前添加salt来提高安全性),它将越安全。我使用for循环与256次重复哈希密码,可能被认为是安全的,对抗下一个多年的蛮力。

一点题外话,但我建议也采取有关会话劫持护理(如再生的SSID,等...)

1
hash_hmac('sha512', $data , $key); 

将是巨大的。作为盐使用至少60个字符作为$ key是更好的。

1

很难说哪一个最好,但安全的赌注是BCrypt算法。

BCrypt不是最好的算法;然而,对于绝大多数用例来说,这已经足够了,并且即使不是简单的实现,也比简单的哈希和盐方法容易实现。使BCrypt与众不同的是,它不是采用更典型的SHA- *算法,而是利用了Blowfish算法,该算法具有并行速度较慢的优势。由于用户一次只能登录一次,这使得测试众多密码的攻击者难以击败该算法。

这里更多:http://davismj.me/blog/bcrypt/

相关问题