如果我对密码进行加密和散列,如果潜在的攻击者拥有盐字符串且仅攻击一个帐户,那么它是否比仅散列密码更安全 - 假设数据库中没有其他帐户?
答案 0 :(得分:4)
暴力破解和字典攻击需要花费相同的时间,但是使用盐仍然会阻止彩虹表攻击。
所以是的,即使您的应用程序预计有一个用户,我仍然会推荐一个盐。
答案 1 :(得分:2)
是的,没有盐的散列密码不太安全。
Salt阻止使用预先计算的反向查找表。
仅仅因为中数据库中只有一个帐户并不意味着攻击者无法使用他生成的预先计算的表来攻击其他系统。对于设计较差的系统(如旧的Windows LAN Manager),还有在线可用的表格。
使用盐是容易和安全的。你有什么理由跳过它?
答案 2 :(得分:1)
Salting有助于防止攻击者使用强力或彩虹表来查找散列的常用密码。
如果攻击者知道您使用过的盐,那么您可以放弃对蛮力的所有保护,但仍然可以保护彩虹桌。除非用你的盐生成彩虹表。
最佳安全性是为每个哈希密码使用自定义盐。防止彩虹表,并使暴力攻击更加烦人。