密码学,盐保存在什么地方?

发布于 2022-08-26 19:40:47 字数 174 浏览 16 评论 0

每次都表示一下我是一个新手。我在做网站安全方面是第一次,我使用MD5加密,随机生成salt再存入数据库。

现在我有一个问题,如果别人能得到密码hash,那也能得到salt,毕竟都存在数据库里。那这样加盐的意义在哪里?还是我理解错了?

**纠正一下,我存的是(hash,salt)和salt。上面写错了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

风铃鹿 2022-09-02 19:40:47

加salt的意义不是防止针对某个哈希值的暴力破解,是防止使用彩虹表批量破解哈希值。

具体到某一个哈希值,salt也使得攻击者必须使用字典+枚举的方式来破解,同样增加了破解的难度。

不羁少年 2022-09-02 19:40:47

加盐是为了防止已有MD5查询网站或者程序直接破解密码。
比如你的密码是admin,MD5值是21232f297a57a5a743894a0e4a801fc3,但是如果你设置一个salt:!@#)(*$%&^,加密函数变为MD5(pass+salt),MD5值变为52cbc7b676eb498c96ac20e854f92f6f,那么那些破解网站或者程序就难以直接找出密码。
当然你的算法可以做得更加复杂,如MD5(MD5(salt+pass)+MD5(pass+salt)),即使有人通过注入等漏洞攻击,从数据库获得密码Hash,在不知道密码算法的情况下,他也难以进行密码的破解。

暗藏城府 2022-09-02 19:40:47

你理解的有误,跟 salt 一起存起来的不是密码的 hash 而是 hash(密码, salt)。如果只存密码的 hash,很容易被碰撞逆向出密码明文,但是一旦添加了随机的(哪怕是伪随机的)salt,碰撞法也不能逆向出密码明文了。

江湖正好 2022-09-02 19:40:47

如果别人能得到密码hash,那也能得到salt,毕竟都存在数据库里。那这样加盐的意义在哪里?还是我理解错了?

既然别人能得到你的hash和salt,那也就能得到你整个数据库~ 所以你应该考虑你的系统安全而非网站安全了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文