我一直在努力改进我目前正在构建个人项目的CMS的密码哈希类。我最初使用md5没有盐,然后切换到md5salt + md5,然后切换到sha1salt + sha1,现在我已经转移到sha512salt + sha512。
我正在考虑在散列过程中添加迭代循环。我的问题是......我是否会完全超越这个?或者我应该这样做,因为它不需要花费太多的开发时间。我打算最终发布系统,并希望它尽可能地扩展,所以我猜迭代,它可能会使登录过程减慢太多。
我只是有点困惑,是否要停止我现在所拥有的(sha512salt + sha512)或者可能后退到sha1并使用较小的盐?
是否有人有创建此类课程的经验,以及他们最终解决了什么样的哈希程序?我听说过bcrypt,但无法在此找到任何php示例。
提前致谢, 德鲁
md5哈希的原因 - 显而易见。
sha1的原因 - 想要更高的安全性,因为md5是最低的。
sha512的原因 - 我读到了一些暗示sha1被打破并且可以被认为很弱的事情。
......也许最后一步是不必要的?
此外,接受的方法是什么或生成随机盐...只是一个简单的4字节rand()将这个4字节的哈希值转换为sha哈希值会有什么不同?
由于
答案 0 :(得分:6)
所有这些声音都很复杂;从安全相关的角度来看,使用单一的盐+ sha1组合应该足够了。
以下是一些问题/答案,可能会为您提供更多信息(过去已经有很多关于密码和腌制和散列的问题 - 其中一些可能对您有所帮助) :