【发布时间】:2018-08-02 14:58:17
【问题描述】:
我在 Troy Hunt 的博客 (https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/) 上阅读了一篇关于名为“Pwned Passwords”的功能,该功能可检查您的密码是否在包含超过 10 亿个泄露密码的数据库中。
要在不传递密码的情况下执行此检查,客户端代码对其进行哈希处理并仅传递此哈希的前五个字符,后端返回以您传递的前缀开头的密码的所有 sha1 哈希。然后,为了检查您的密码的哈希是否在数据库中,对客户端代码进行比较。
他还放了一些关于这些散列密码数据的信息......
- 从 00000 到 FFFFF 的每个哈希前缀都填充有数据(16^5 组合)
- 平均返回的哈希数为 478
- 最小的是 381(哈希前缀“E0812”和“E613D”)
- 最大的是 584(哈希前缀 "00000" 和 "4A4E8")
在 cmets 中,人们想知道这个“00000”的存在是巧合还是数学......
有懂SHA1算法的人给我们解释一下吗?
【问题讨论】:
标签: algorithm hash passwords sha1