假设我有一个这样设置的用户表:
CREATE TABLE `users` (
`id` INTEGER PRIMARY KEY,
`name` TEXT,
`hashed_password` TEXT,
`salt` TEXT
)
创建用户时,会生成随机生成的盐并将其与类似结果一起存储在数据库中get_hash(salt + plaintext_password)
.
我想知道如果恶意用户获得了这些数据,他们是否能够使用它来破解用户的密码?如果是这样,有什么方法可以预防呢?
不,它们并非无用。
只要您为每一行使用独特的盐,那么盐就会防止减缓攻击。攻击者需要发起暴力攻击,而不是使用彩虹桌 http://en.wikipedia.org/wiki/Rainbow_table反对密码哈希。
正如评论中提到的,您应该确保盐的大小合理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)