我花了过去的两个小时阅读有关密码加盐的文章,并确信自己理解了这个概念。我希望你们中的一些人可以分享你们对我的结论的见解。
如果我是攻击者,并且我获得了用户数据库的访问权限,我可以使用表中存在的所有每个用户的盐来创建彩虹表。对于大型表格,这可能需要很长时间。如果我能将列表缩小到感兴趣的用户(管理员,moderator),我可以使用更大的字典列表来创建彩虹表,提高我的命中率......
如果这是真的,那么看起来加盐并没有太多帮助。它只会稍微减缓攻击者的速度。
我知道理想情况下,您希望强制使用复杂密码,并将其用唯一和随机的字符串进行加盐,但强制使用复杂密码可能会令用户感到困扰(我知道它也会令我感到困扰),因此很多网站不这样做。这似乎是网站在对其用户做出错误服务,而强制使用复杂密码比使用良好的加盐方法更为重要。
我猜这不是一个问题,而是请求其他人就该情况的了解分享。