Brypt为每个密码生成随机盐。可以防止彩虹表攻击。但这可以防止暴力攻击吗?我的意思是,如果用户选择一个较弱的公知密码,则可以在公知密码列表上进行暴力攻击。因此,我的想法是将用户密码与固定的salt并最终与用户ID salt(即user pseudo)连接。如果攻击者无法访问该软件的代码(如果他仅对数据库进行黑客攻击),那么他将无法使用具有众所周知的密码列表的蛮力攻击来找到真实密码。
那么什么好方法呢?
Bcrypt(apassword)
要么
bcrypt(apassword+pseudo)
要么
bcrypt(apassword+pseudo+fixedsalt)
正如您所写,盐可以防止彩虹表攻击,也不能防止暴力破解,这是BCrypt的缓慢性,可以缓解暴力破解。BCrypt提供了一个成本因素,该成本因素控制了计算单个哈希值所需的时间。
通过使用服务器端密钥(如AES-256之类的任何算法)对计算得出的哈希值进行加密,可以更好地实现所需的附加保护。然后,该密钥不会成为哈希的一部分,并且可以在需要时进行交换。优点与固定盐(实际上称为Pepper)相同,只有在服务器上具有特权的攻击者才能开始破解密码哈希。我试图在本教程的末尾有关安全存储密码的方面进行解释。
因此,请让salt发挥作用,不要将其与其他任务混在一起,而是在以后加密密码哈希。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句