这3种创建盐的方法的优缺点是什么?
$salt = md5($password);
$salt = sha1(md5($password));
$salt = generate_random_number();计算哈希:
$hash = sha1($salt + $password);发布于 2010-01-04 00:58:52
盐
要回答这个问题,重要的是要知道盐是什么。
Salts是针对预先计算的表的攻击而设计的。例如彩虹桌。彩虹表是巨大的表,所有可能的密码变化达到一定的长度。(使用巧妙的内存/时间权衡。)
如果攻击者只想破解单个密码,他们不会提供任何优势。
如果满足以下条件,则上述语句不成立
使用彩虹表的攻击者通常想要破解尽可能多的账户。
你的哪种方法最安全?
除了第三个方法之外,所有的方法都是不安全的。这是因为使用任何其他方法都允许攻击者计算整个数据库的彩虹表。
因为盐依赖于密码。也不要让它依赖于用户名,这仍然允许攻击者为100个最常见的用户名创建一个彩虹表。
请牢记
https://stackoverflow.com/questions/1994882
复制相似问题