您好,匿名用户
随意问技术百科期待您的加入

迭代少的复杂的哈希算法 vs 多次迭代的简单的哈希算法

0 投票

迭代少的复杂的哈希算法 vs 多次迭代的简单的哈希算法,能不能对比二者的优劣~~分别有什么优势和劣势。
比如在对密码进行加密的时候,用哪种更靠谱呢?

用户头像 提问 2012年 12月1日 @ Aries 上等兵 (238 威望)
分享到:

1个回答

0 投票
 
最佳答案

经典的硬件计算能力和算法的赛跑。因为多核、GPU辅助运算早就普及(1万块组个4核+GPU,轻松就能每秒尝试超过千万个排序组合),MD5和SHA1已经被证明强度不够了,就算每个用户有不同的Salt改观也不大,毕竟大部分场景下,Salt会和用户的password存在相同位置。

scrypt的内存和CPU占用都很高,理论上是最好的选项,但还没有大规模地被IT工程师们实现。

最现实的是blowfish,足够慢,大概比SHA1慢1万倍。PHP很早就有个phpass库,Wordpress等等就用的它,Python和Ruby都有移植。

最次就是结合足够长,足够随机的Salt,多多迭代SHA2。

另外,今年晚些时候,SHA3应该可以有优胜者了:http://csrc.nist.gov/groups/ST/hash/s...

我觉得密码安全更多的是社会工程学问题:

  • 鼓励用户选择复杂的密码,警告用户不要各处使用相同密码
  • 不要泄露用户的敏感信息(避免交叉火力,无良的网站们都是做不到这一点的)
  • 能够侦测登录异常、恶意尝试
  • 要派人潜伏到安全行业里,或者聘安全顾问,别等到门户网站报道了才知道密码大规模泄露
  • 能够使密码失效(锁定账户),或者周期性提醒修改密码,别等出问题了再开发代码
  • 要提前规划密码算法迁移的办法,别忽悠产品经理说这个很复杂
用户头像 回复 2012年 12月1日 @ Maokai 上等兵 (292 威望)
选中 2012年 12月1日 @Aries
提一个问题:

相关问题

+1 投票
0 回复 25 阅读
0 投票
1 回复 47 阅读
用户头像 提问 2012年 12月1日 @ Nasus 上等兵 (329 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2012年 12月1日 @ Malphite 上等兵 (306 威望)
0 投票
1 回复 40 阅读
用户头像 提问 2012年 12月1日 @ Morgana 上等兵 (251 威望)
0 投票
1 回复 29 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...