单向:哈希加盐法(HASH+SALT)
一人一密:同一个站点设置同样口令的不同用户,加密生成的密文内容并不相同。
一站一密:仅仅保证一人一密是不够的,还要保证使用同样信息、同样口令去注册不同网站的用户,在不同站点的口令加密结果是不同的。
比如说,用户的密码是123456,加一个盐,也就是随机字符串“1cd73466fdc24040b5”,两者合到一起,计算MD5,得到的结果是6c9055e7cc9b1bd9b48475aaab59358e。通过这种操作,即便用户用的弱密码,也通过加盐,使实际计算哈希值的是一个长字符串,一定程度上防御了穷举攻击和彩虹表攻击。
实现这些说起来很简单,依然是HASH+SALT,关键在于每个站点要有不同的SALT,每个用户要有不同的盐。