微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据库 – 盐化密码哈希有什么好处?

我刚刚阅读了许多关于使用salt散列密码的文章,但是我找不到我所遇到的特定查询/混淆的答案.

假设我刚刚为数据库添加了密码和salt这个方法

>创建一个随机
>将用户密码盐混合在一起
>将哈希输出存储为“密码”列中的密码
>将随机盐储存在“盐”栏中

如果这是正确的,当攻击者访问我的数据库时会发生什么?当然,如果他们能够读取散列密码的盐值,他们可以计算出没有盐的散列密码,然后使用彩虹表吗?或者用可逆的东西加密盐值是个好主意?

如果salt值以纯文本形式存储,我就看不到它的重点.请赐教?

解决方法

您概述的步骤是正确的.

如果攻击者访问您的数据库,他必须对可能的密码和随机盐进行强力搜索.如果你使用64位合理的随机盐,那么就不会有两个条目使用相同的盐,所以任何彩虹表攻击一次只能用于(最多)一个盐值,这使得彩虹表攻击也是如此价格昂贵. (在为用户建立salt时,您甚至可以检查以确保没有使用给定盐的其他密码.)

盐渍哈希密码处理的目的是使计算上不可能预先计算可能的密码哈希,因为随机盐会使预计算过程搞砸.

这也意味着如果在不同的站点使用相同的密码,只需查看(盐渍哈希)密码值就不会明显 – 因为盐在不同的站点会有所不同,因此产生的哈希值将是不同. (当然,如果为一个站点发现密码,则攻击者将首先在下一个站点尝试该密码;最好不要在多个位置使用相同的密码.但是使用相同的密码这一事实是隐藏的.)

原文地址:https://www.jb51.cc/mssql/84063.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐