我一直在努力改进我的密码散列类,用于我目前正在作为个人项目构建的CMS。我最初使用不带salt的md5,然后切换到md5salt+md5,然后切换到sha1salt+sha1,现在我已经转移到sha512salt+sha512。
我也在考虑在散列过程中添加一个迭代循环。我的问题是...我这样做是不是太过分了?或者我是否应该这样做,因为它并不真正耗费太多的开发时间。我确实打算最终发布系统,并希望它尽可能地可伸缩,所以我猜随着迭代的进行,它可能会使登录过程变得太慢。
我只是有点困惑,是应该止步于我现在得到的东西(sha512salt+sha512),还是可能后退到sha1,使用更小的盐?
有没有人有创建这样的类的经验,还有,他们最终采用了什么散列过程?我听说过bcrypt,但在这上面找不到任何php示例。
先谢谢你,德鲁
编辑...
md5散列的原因-显而易见。
sha1的原因-想要更多的安全性,因为md5是最低的。
sha512的原因-我读到了一些东西,表明sha1是坏的,可以被认为是弱的。
...Maybe最后一步是不需要的吗?
另外,什么是可接受的方法或生成随机盐...仅仅是一个简单的4字节rand()将这个4字节的哈希值转换成一个sha哈希值会有什么不同吗?
谢谢
发布于 2009-10-07 11:12:10
所有这些听起来都很复杂;从安全相关的角度来看,我认为使用单一的salt+sha1组合就足够了。
这里有几个问题/答案,可能会给你提供更多的信息(过去已经有很多关于密码、加盐和散列的问题--其中一些可能会对你有所帮助):
https://stackoverflow.com/questions/1530949
复制相似问题