首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于散列密码的双盐?

用于散列密码的双盐?
EN

Stack Overflow用户
提问于 2010-01-15 00:13:38
回答 1查看 3.3K关注 0票数 9

我在考虑用两个不同的salt字符串来散列用户密码,一个存储在代码中,对所有用户都是相同的,另一个存储在数据库中,每个用户都有自己的唯一值。

这是否比简单地将值存储在数据库中更有效?

任何建议和意见都可以提出来。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2010-01-15 00:25:09

如果有什么影响的话,那也是微不足道的。考虑到静态的、硬编码的salt可以看作是对散列算法的一种改变-它每次都以完全相同的方式发生,因此它也可以被认为是算法的一部分。

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

你从中得到任何值的唯一方法是在静态盐未知的情况下-等同于算法是未知的。如果您的二进制文件或源代码对攻击者可用,则反向工程将演示算法和硬编码的salt。

如果这个问题公之于众,你可能不得不处理来自许多安全爱好者的抨击,他们认为任何不完美的东西都是完全坏的,即使你的产品已经做了正确的事情,额外的步骤只是无用的。

当然,您还必须处理具有静态盐的维护问题-向后兼容性和围绕散列代码的bug修复可能是一件痛苦的事情。

静态键(或盐)的极小好处根本不值得为此付出代价。始终使键和盐具有动态性。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2065558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档