用于哈希密码的双盐?

Dan*_*Dan 9 passwords salt

我正在考虑使用两个不同的salt字符串哈希用户密码,一个存储在代码中,对于所有用户都是相同的,另一个存储在数据库中,每个用户都有自己唯一的值.

这比仅仅将值存储在数据库中更有效吗?

任何建议,意见相关.

谢谢

atk*_*atk 20

如果有的话,效果微乎其微.考虑到静态的,硬编码的盐只能被视为对散列算法的改变 - 它每次都以完全相同的方式发生,所以它也可以被认为是算法的一部分.

但盐的目的是创建一些类似于扩展密码(最小)强度的随机性,目的是使离线破解(包括彩虹表)更加资源密集(非彩虹表破解需要更多) CPU时间和彩虹表将需要所有字符串的所有盐.

从中获得任何值的唯一方法是静态盐未知 - 相当于未知的算法.如果您的二进制文件或源代码可供攻击者使用,则逆向工程将演示算法和硬编码盐.

如果这个问题公之于众,你可能不得不面对许多安全爱好者的抨击,他们认为任何不完美的事情都会完全被打破,即使你的产品已经做对了,而且额外的步骤也没用.

当然,您必须处理具有静态盐的维护问题 - 向后兼容性以及散列代码周围的错误修复可能会很痛苦.

静态键(或盐)的非常小的好处根本不值得花费.始终使钥匙和盐动态.