我正在尝试将Java中的库移植到AS3中,而我正在使用MD5函数。我在这里使用MD5库作为项目的一部分: http://code.google。 COM / p / as3crypto /

我的长度正确,大约一半的值是正确的。具有讽刺意味的是,正确的值也在正确的位置。只有负值是错误的。例如,两个哈希产生:

Java:[127,-16,107,-93,-103,1,104,-5,-111,12,-126,-91,61,32,-67,61]
AS3:[127,240,107,163,153,1,104,251,145,12,130,165,61,32,189,61]

我已经验证了它们正在散列的源字符串是完全相同的。不确定什么可以以不同的方式实现,或者我需要在自己的实现中进行更改。

有帮助吗?

解决方案

-93和163是相同的东西

正在发生的事情是您将位字符串打印为带符号的数字,并且您没有在脑中运行二进制补码过滤器来评估结果。

提示:注意你的所有“不正确”。值是 - (256 - (“正确的”值)))

其他提示

事实证明这个问题正是上面的digitalross所提到的,但要求我进入MD5类,并处理所有类型为uint的实例,并将它们移动为int类型。

感谢指针

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top