hel*_*der 1 php cryptography salt
这三种方法制造盐有哪些优点/缺点?
$salt = md5($password);
$salt = sha1(md5($password));
$salt = generate_random_number();
Run Code Online (Sandbox Code Playgroud)
计算哈希:
$hash = sha1($salt + $password);
Run Code Online (Sandbox Code Playgroud)
Geo*_*lly 10
要回答这个问题,了解盐是什么很重要.
盐用于预先计算的表格来抵御攻击.例如彩虹表.彩虹表是巨大的表,所有可能的密码变化都达到一定的长度.(使用聪明的记忆/时间权衡.)
如果攻击者只想破解一个密码,他们就没有优势.
如果,上述说法不正确
使用彩虹表的攻击者通常希望破解尽可能多的帐户.
除了第三种方法之外,你所有的方法都是不安全的.这是因为使用任何其他方法都允许攻击者为您的整个数据库计算彩虹表.
因为salt依赖于密码.不要让它依赖于用户名,这仍然允许攻击者为100个最常见的用户名创建彩虹表.