我认为我上次说得不够具体。我们开始吧:
我有一个十六进制字符串:
742713478fb3c36e014d004100440041004 e0041004e00000060f347d15798c9010060 6b899c5a98c9014d007900470072006f007 500700000002f0000001f7691944b9a3306 295fb5f1f57ca52090d35b50060606060606
最后 20 个字节(理论上)应该包含第一部分的 SHA1 哈希(完整字符串 - 20 个字节)。但它不适合我。
尝试用 PHP 来做这件事,但没有成功。你能找到匹配项吗?
门票:
742713478fb3c36e014d004100 440041004e0041004e00000060 f347d15798c90100606b899c5a 98c9014d007900470072006f00 7500700000002f0000001f7691944b9a
附加到原始票证的 sha1 哈希值:
3306295fb5f1f57ca52090d35b50060606060606
我的票证 sha1 哈希值:
b6ecd613698ac3533b5f853bf22f6eb4afb94239
这是票中的内容及其存储方式。 FWIW,我可以提取用户名等,并找出各种分隔符。 http://www.codeproject.com/KB/aspnet/Forms_Auth_Internals/AuthTicket2.JPG
已编辑:我发现字符串的末尾由它在此之前经过的解密函数填充。我删除了最后 6 个字节并相应地通过票据和哈希进行了调整。仍然不起作用,但我更接近了。
最佳答案
您的票是根据十六进制字符串本身计算的。也许附加的哈希是根据相同数据的另一种表示计算的?
关于php - 为什么我的 SHA1 哈希值不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607272/