facebook 如何知道我的新密码与旧密码太相似?

信息安全 哈希
2021-08-14 11:12:33

我对信息安全领域还是很陌生,据我所知,网站在存储用户密码之前会使用哈希算法,而且他们不知道用户的纯文本密码。

今天,我试图更改我的 Facebook 密码,但我收到了这个错误,

在此处输入图像描述

即使我不记得我的旧密码,那么 facebook 怎么会知道我的旧密码是什么?

2个回答

我们不知道 Facebook 究竟是如何管理用户密码的,但是,我们可以想象这样的场景:

新用户使用密码登录他的 Facebook 帐户:Password1Facebook 很可能会立即生成类似的密码,例如:Passw0rd1. pAssword2, Passmord1...等

然后,Facebook 会存储他们各自的哈希值(当然,它们是不同的),这样如果用户输入密码(重置后),新密码的哈希值就会与所有这些存储的哈希值进行比较:Facebook 可以告诉你,如果你的新密码密码是否与上一个相似。


编辑:

@Philipp评论说 Facebook 不会散列密码之后,我想分享我从 Facebook 官方文档(保持密码安全)中引用的这些信息:

我们使用我们的内部密码散列算法和该的唯一散列每个密码由于 Facebook 将密码安全地存储为哈希,我们不能简单地将密码直接与数据库进行比较。我们需要先对其进行哈希处理并比较哈希值。

简要介绍了技术细节,但 Facebook 确实使用带有独特盐的散列。纯文本密码用未公开的算法进行哈希处理(因为 Facebook 没有透露它),然后用唯一的盐作为前缀或后缀并进行比较。如果匹配,则用户会获得绿灯,否则不会。如果密码相似,Facebook 可能会使用预先计算和预测的散列密码,例如将 a 替换为 @ 或将 i 替换为 1 或将字母/s 替换为大写或小写。这里简要介绍一下