存储散列密码时,盐通常会保留在其中。这通常不是安全问题,因为据我了解,盐仅用于防止彩虹查找表,并且每个密码具有唯一的盐,因此需要通过蛮力单独破解每个密码。
为什么不常见的做法是在所有未共享到数据库的密码中共享的“盐”中包含第二个静态部分。这样可以确保仅破坏数据库不足以通过蛮力破解密码,因为黑客还需要了解密码盐的次要静态部分?
答案 0 :(得分:0)
盐只是通过蛮力单独设计的。
为什么不常见的做法是在所有共享的“盐”中添加第二个静态部分
我会说-因为“简单”盐可以达到其目的。简单的修改足以迫使对手分别破解每个密码。
从理论上讲-使用任何身份验证框架都不会阻止您添加另一个salt参数(尽管不是很常见,但我看到使用了该参数)。因此,确实可以做到这一点,但是另一种“系统”盐将具有另一目的。
我认为-如果仅数据库受损(例如,备份泄漏,..),则添加另一个“系统”盐将有所帮助。通常,破坏数据库的同时会损害整个系统,包括秘密或其他配置