需要注意的是,SQL 注入可用于使用load data infile来读取文件。通过攻击者未知的盐值,这将迫使攻击者进行更多猜测以获得纯文本。尽管加盐几乎从不考虑这一点。主要思想是完成两件事:
1)具有相同密码的两个用户将具有不同的密码哈希值。这就是为什么一些加盐系统使用非常小的盐,例如仅几个字节。
2)迫使攻击者生成更大的彩虹表。在本例中,您至少需要 8 个字节。通常,您会看到盐与消息摘要函数具有相同的位数,这使得预计算完全不可行。
一旦获得了盐,就可以使用John The Ripper工具来暴力破解密码。GPU 也常用于破解高盐密码。值得注意的是,bcrypt() 由于其对内存的要求较高,因此擅长防御 FPGA 和 GPU。 使用内存硬功能进行密码存储可以产生非常强大的密码存储系统。