刚 facebook 提示我有异常登录,让我修改密码。
为了方便记忆,我只改了原密码其中的一个字母的大小写,然后提示信息如下:
Your new password is too similar to your current password. Please try another password.
注:修改密码页面是不需要输入原密码的,那么 facebook 是怎么拿新旧密码检查的呢?
1
wy315700 2015-09-02 15:21:39 +08:00
simhash
|
2
shuax 2015-09-02 15:22:17 +08:00
也许有一种 similar hash 算法,算出来的两个 hash 很接近就说明密码接近呗。
比如“ 123 ” -> 6 , “ 132 ” - > 6 。服务器只保存了 6 。 |
3
laoyuan 2015-09-02 15:41:07 +08:00
只是保存了 lowercase (password ) 的密文
|
4
clino 2015-09-02 15:45:38 +08:00
那如果黑客拿到了 simhash 的数据是不是会比较容易猜出密码呢
|
5
caoyue 2015-09-02 18:06:43 +08:00 3
记得之前在 stackoverflow 还是哪里看到的,有个据说是 Facebook 的人确认过,用的是类似这样的方法:
1. 用户注册,设置密码 password "abc123", Facebook 存 hash 1. 用户提交 new password ,假设是 “ Abc123" 2. Facebook 会根据这个密码,生成一堆 ” abc123",“ aBC123" … 这样的密码,然后去和之前的 hash 比对,中了就会出现 similar password 的提示 另外, simhash 对短文本效果不是太好吧,对密码相似性判断这种需求应该不太有效 |
7
caoyue 2015-09-03 12:17:10 +08:00
|