我正在尝试将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]
我已经验证了它们正在散列的源字符串是完全相同的。不确定什么可以以不同的方式实现,或者我需要在自己的实现中进行更改。
答案 0 :(得分:4)
正在发生的事情是您将位字符串打印为带符号的数字,并且您没有在脑中运行二进制补码过滤器来评估结果。
提示:请注意你的所有“错误”值是-(256 -("correct" value))
?
答案 1 :(得分:0)
事实证明这个问题正是上面的digitalross所提到的,但要求我进入MD5类,并处理所有类型为uint的实例,并将它们移动为int类型。
感谢指针