将sha512 as3与vb.net进行比较时出现错误,值不正确

时间:2013-02-28 17:42:07

标签: actionscript-3 cryptography

我一直在测试sha512课程。我需要从flash cs5中的字符串生成哈希,但我需要它来匹配asp.net(vb)生成的哈希。它似乎是在字符串中的某处添加零,我不知道为什么。

这些是我使用的文件:Porting SHA512 Javascript implemention to Actionscript

散列字符串在此示例中名称为“Karla”

示例(asp.net)// **括号显示差异在哪里** C4DB628AD520AFF7308ED19E91635E8E24A6C7CFD4DB2F71BBE2FA6CD63770B315A839143037BB9DB16784C0BDCEB622ECAA4077D4D8(1787)D5023E86734748

(AS3)

C4DB628AD520AFF7308ED19E91635E8E24A6C7CFD4DB2F71BBE2FA6CD63770B315A839143037BB9DB16784C0BDCEB622ECAA4077D4D8(17087)D5023E86734748

下面添加了信息,在我提供的链接中,但我不认为它与我需要的相关,我不认为我使用hmac,只是一个直接的字符串哈希,但是,当我在vb.net我这样做首先从字符串中获取字节,我有字节。

我觉得as3代码在sha512类中自动转换了字符串?

希望有人也遇到这个问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这些哈希中的任何一个都不正确。字符串“Karla”的正确SHA512哈希是:

C4DB628AD520AFF7308ED19E91635E8E24A6C7CFD4DB2F71BBE2FA6CD63770B315A839143037BB9DB16784C0BDCEB622ECAA4077D4D817087D5023E867347408

但是,我打赌AS3哈希实际上是正确的 - javascript版本生成正确的哈希值see here - 并且只是粘贴不正确。

在计算哈希中的两个位置,它包含字节0x08,但在ASP.NET版本中,字节的高4位丢失,并且它仅作为{{附加到输出字符串1}}不是"8"

基本上,你的ASP.NET哈希生成器会丢弃小于"08"的数字 - 忽略前导零 - 并给你不正确的哈希值。

另一种告诉您的ASP.NET哈希有问题的方法是它只有126个字符(504个十六进制编码位)。