Security 20字节(160位)的密钥有什么特别之处?

Security 20字节(160位)的密钥有什么特别之处?,security,web,key,Security,Web,Key,我收到了一封电子邮件,里面有一个重置键。它是40个十六进制字母,所以是20个字节,也就是160位。我心想,为什么是160比特?可能是128(键)+32位(校验和或id或其他)。也许是别的。我相信这样做是有原因的,但为什么呢?(注:另一端的人似乎不想说为什么或者可能不知道。所以问其他地方没有用。我觉得很傻。) 我确信脚本是用PHP编写的,就像网站的其他部分一样 哈,好吧,那可能是SHA-1。但是什么会被散列呢?今天晚上我重置了两次密码,我不确定间隔多长时间,但它们是相同的钥匙。我明天试试。也许它是

我收到了一封电子邮件,里面有一个重置键。它是40个十六进制字母,所以是20个字节,也就是160位。我心想,为什么是160比特?可能是128(键)+32位(校验和或id或其他)。也许是别的。我相信这样做是有原因的,但为什么呢?(注:另一端的人似乎不想说为什么或者可能不知道。所以问其他地方没有用。我觉得很傻。)

我确信脚本是用PHP编写的,就像网站的其他部分一样


哈,好吧,那可能是SHA-1。但是什么会被散列呢?今天晚上我重置了两次密码,我不确定间隔多长时间,但它们是相同的钥匙。我明天试试。也许它是一个邮戳+用户id,我想…

它可能是一个散列,有160位。

160位是SHA-1散列的大小。

RFC3174


(又名SHA-1)

因为它适合3.3个ATM信元?不,我想这与SHA1的大小比其他任何东西都有关系,但可能是因为它对程序员来说很方便,而且很难猜测。把任何垃圾扔进SHA1,然后得到一些看起来很随机的东西:“土豚”⇒ ff49abca9701606b01b6245d587d26c31b63a433;'土豚⇒ 33ECE01BCF67B6AEAB8FB8BA0DE55B5B92D3875;'僵尸24'⇒ 973C16B5129C681551D194F5950120B73BEF15C;;'“僵尸25”⇒ fb24ca75c684d0e82c77801fc9e8286fcbca6791等,如果您找回相同的“密钥”,则可能发现了安全漏洞。由于大多数密码重置都有超时,一个非常简单的实现可能是使用今天的日期和用户id。如果作者对“已知明文攻击”了解不够,那么很有可能实现失败。msw:我现在在想它到底有什么可能。然后我看到了你的评论。我想把任何东西扔进去都能成为一把好钥匙/传球。你真的猜不出是什么。(除非你看到代码)。我想这个问题已经结束了。@msw:有意思,怎么做?我想简单地做sha1(日期(“Ymd”)+用户ID+“salt”,但也许这些家伙没有做,但很可能他们做了);(无盐尝试这并没有给我发电子邮件的钥匙)。我看了一下维基,它没有说任何我不知道的东西。你是说猜猜输入的数据,看看我是否能找到匹配的键?还是有其他方法/攻击?