我刚刚阅读了许多SO上关于使用盐值哈希密码的文章,但我仍然无法找到对我特别疑问/困惑的答案。
假设我刚刚执行了以下方法以将密码和盐值添加到数据库中:
- 创建一个随机生成的盐值 - 将用户的密码和盐值一起进行哈希计算 - 将哈希输出存储为“password”列中的密码 - 将随机生成的盐值存储在“salt”列中
如果这是正确的,那么当攻击者获得我的数据库访问权限时会发生什么?如果他们可以读取该哈希密码的盐值,在没有盐值的情况下,他们能否计算出哈希密码并使用彩虹表?或者对盐值进行加密,并使用可逆的方式来保护它是否是个好主意?
如果盐值以明文形式存储,我就看不出它有任何意义。请给我指点迷津。
假设我刚刚执行了以下方法以将密码和盐值添加到数据库中:
- 创建一个随机生成的盐值 - 将用户的密码和盐值一起进行哈希计算 - 将哈希输出存储为“password”列中的密码 - 将随机生成的盐值存储在“salt”列中
如果这是正确的,那么当攻击者获得我的数据库访问权限时会发生什么?如果他们可以读取该哈希密码的盐值,在没有盐值的情况下,他们能否计算出哈希密码并使用彩虹表?或者对盐值进行加密,并使用可逆的方式来保护它是否是个好主意?
如果盐值以明文形式存储,我就看不出它有任何意义。请给我指点迷津。