我在特洛伊亨特( Troy )的博客(https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/)上读了一篇文章,内容是关于一个名为“password”的功能,它可以检查你的密码是否在一个有超过10亿个泄露密码的数据库中。
若要在不传递密码的情况下执行此检查,客户端代码将对其进行散列,并仅传递此散列的前五个字符,后端将返回以您传递的前缀开头的密码的所有sha1散列。然后,要检查密码的散列是否在数据库中,将对客户端代码进行比较。
他放了一些关于这些散列密码的资料..。
在评论中,人们想知道这个"00000“是巧合还是数学.
有人能理解SHA1算法吗?
发布于 2019-02-03 06:59:00
有人需要对照sha1算法来验证我的猜测(而且特洛伊可能已经发现了它,因为根据他的博客回答,他“在纯文本密码上达到了峰值”),但由于密码只是阿尔法/数字和有限的符号,就像ASCII中描述的那样,创建哈希的第一个零位(ascii为0-255,但字母数字和符号使用的范围在32-98范围内,我相信,所以每8位中的第一位总是为零),虽然这是散列的功能掩盖这一点,但我怀疑可预测的位位置并不像人们所期望的那么容易混淆。当它与4,0是00000000的位形式,4是00000100的时候,两者都有前5位0,
还请注意,两个最不频繁的散列头都以E开头,在二进制数中为11111110,因此它们在构造(1 s vs 0's)和频率(低比高)时几乎完全相反,这意味着零位的存在可能是算法直接(可疑)的副作用,也可能是算法在受惯例倾斜的有限子集上的一个函数,换句话说,字母和数字只占ASCII所描述的全部范围的1/3-1/4,这是最有可能的。
当然,我们可以用这个会议来“锡箔帽”,但我敢打赌,巧合和ASCII比那个人更应该怪在草地上。
发布于 2018-02-22 22:54:15
好吧,由于密码最初来自数据泄露,我最好的猜测是,其中一个系统中的密码表是按照密码的(未加盐)排序或群集的--这些人的密码是被偷的)密码的SHA1散列。当系统被攻破时,攻击者从"00000“哈希开始,只是没有一路通过.
或者特洛伊使用的列表包括SHA1彩虹表(table)的第一部分.
或者类似的东西。基本思想是密码的SHA1散列是密码选择过程的一部分。
发布于 2018-02-22 20:32:42
这要么是巧合,要么是(不太可能)在获取或组装结果以供发布时产生的工件/错误。
这并不是说它看起来是一个重要的离群点。所描述的价差(381分钟,478个平均,584个最大)似乎是样本大小的均差。整个语料库的图表可能看起来很随意。
与任何合理构造的散列算法一样,SHA1结果中的字符频率应该是随机分布的。(如果SHA1有某种偏见,这将是数学和密码学/密码学社区的主要新闻!)
https://stackoverflow.com/questions/48932841
复制相似问题