sha*_*oth 14 security hash salt password-hash
假设我为每个用户存储一个随机盐值.更改用户密码时是否必须生成新的salt值,或者在该用户帐户的整个生命周期内使用相同的值?
Tho*_*nin 23
你应该改变盐.对于所有密码实例,salt被设计为唯一的(尽可能多).
如果您使用相同的盐作为旧密码和新密码,那么看到旧散列密码和新散列密码的攻击者可以攻击两者,其成本不到攻击成本的两倍.这正是盐旨在避免的那种(盐没有其他用途).
当然,旧的密码,是老了,不再是输入一个有效的方式您的系统,但由于用户往往重复使用的密码,旧密码仍然可能(但从攻击点)值得的.尤其是,用户可以重新使用旧密码的时候他会再次改变他的密码(这是当遇到需要定期更换密码的系统大多数用户做的事:他们两个密码之间交替).