加密密码:什么时候密码太多?
我正在更新我的 helper
函数库。我想知道密码加密中是否salt
太多了?
之间有什么区别吗
mb_substr(sha1($str . AY_HASH), 5, 10) . mb_substr(sha1(AY_HASH . sha1($str . AY_HASH)), 5, 10) . mb_substr(md5($str . AY_HASH), 5, 10)
和简单的:
sha1(AY_HASH . sha1($str . AY_HASH))
AY_HASH
是salt
?我应该选择哪一个?如果两者都不好,那么最好的选择是什么?
I am updating my helper
functions library. I am wondering whether it is too much of salt
in the password encryption?
Is there any difference between:
mb_substr(sha1($str . AY_HASH), 5, 10) . mb_substr(sha1(AY_HASH . sha1($str . AY_HASH)), 5, 10) . mb_substr(md5($str . AY_HASH), 5, 10)
and simply:
sha1(AY_HASH . sha1($str . AY_HASH))
AY_HASH
being the salt
. Which should I prefer and if neither is good, what is the best alternative?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
应为每个密码生成盐,而不是为每个密码生成秘密字符串。重复使用盐意味着攻击者只需为每个密码创建一个彩虹表,而不是每个密码创建一个彩虹表。
我邀请您阅读我之前在 安全哈希。规则很简单:
无论如何,您应该使用bcrypt,它是面向未来的。再次我邀请您我之前的回答有一个更详细的例子。
A salt should be generated for each password, not a secret string used on every password. Re-using a salt means that the attacker will only need to create one rainbow table for every password instead of one per password.
I invite you to read a previous answer I wrote on secure hashing. The rules are simple:
If anything however, you should use bcrypt, which is future-adaptable. Again, I invite you to my previous answer for a more detailed example.