对多个字段使用相同的salt

时间:2010-07-07 15:34:13

标签: php database security encryption salt

我有一个连续的字段,我正在哈希和腌制。每行的盐是不同的。我决定在每一行中散列/加盐几个字段。

如果我为每个字段生成新的盐,那么对同一行中的那些新字段使用相同的盐会使数据更容易受到彩虹攻击吗?我的逻辑是,在同一行中只有几个字段将使用相同的盐,这将使密钥/盐管理更容易。

2 个答案:

答案 0 :(得分:3)

不,如果有人有一张足够大的彩虹桌来打破你的盐,那么你就会因使用太小的盐而搞砸了。您添加到salt中的每个字节使彩虹表呈指数级增大。在哈希中添加盐不会使预先计算的攻击变得不可能,只会更加困难。

重复使用盐会使您的系统更容易受到攻击。攻击者可以创建一个帐户,然后使用SQL注入将他的盐渍哈希从数据库中提取出来。然后他可以使用John The Ripper来强制盐(因为他知道自己的密码)。如果salt存储在数据库中,那么他可以使用SQL注入来获取salt和hash,并使用John中断未知密码的哈希值。如果密码是字典单词,则需要不到一个小时的时间才能打破。

答案 1 :(得分:1)

是的,但使用多种盐的数据真的很重要吗?如果每行使用一个盐,这应该足够了。有关与盐相关的更多信息,请参阅此文章:http://php-security.org/2010/05/26/mops-submission-10-how-to-manage-a-php-applications-users-and-passwords/