当我们储存用户的密码时,使用hash值。
这样,我们在不知道用户的密码,也可以验证用户。
当数据库被盗,丢失的hash值也无法伪造登陆。因为hash值是oneway function,无法反推用户密码。
黑客直接使用hash当然也无法登陆,因为我们会在把这个hash当作密码hash一遍和数据库的hash值对比。
好处:
1 即使db被入侵,密码依然很安全
2 我们可以在不知道用户密码的情况下,继续维护系统
3 很多用户使用同一个密码登陆很多网站
note:
在恢复邮箱账号的时候,不能使用相同密码,原因可能是两次密码的hash值相同。并不是系统记录了密码。
rainbow table: inverted table with hash -> clear text