我无法理解使用salting将用户数据存储在数据库表中的好处。我设置的流程如下:
现在,当用户尝试登录时,他们会提供用户名/密码,并且:
这一切都很好,花花公子,但黑客不仅仅需要猜测用户名和密码组合吗?只要他们可以确定用户名,他们就可以检索盐。使用强力攻击他们只需要确定正确的用户名/密码组合。 只使用用户名检索盐并添加到提供的密码中,以便与存储的密码进行比较,那么最后使用盐的意义何在?它不像黑客那样猜测盐值。他们提供的密码会自动使用数据库中的salt加密,只要他们知道用户名,只需要用明文猜测密码即可。
答案 0 :(得分:2)
盐的目的是强迫黑客一次攻击每个用户名,而不是让他立刻攻击所有用户名。因为每个用户名都有不同的salt,所以相同的密码将以不同的方式存储。这次defeats rainbow table攻击。