使用 as3 中的 as3crypto 将字符串 '12345' 的 SHA1 哈希值与在示例中的操作方式相同:
var sha1:SHA1 = new SHA1;
var src:ByteArray = Hex.toArray("12345");
var digest:ByteArray = sha1.hash(src);
trace('SHA:' + Hex.fromArray(digest));
结果:ec60c0fd70d82a7785f6c9a02dbe16f2e40b1344
在 PHP 中使用相同的字符串生成 SHA1:
print "SHA:".sha1("12345");
结果:8cb2237d0679ca88db6464eac60da96345513964
如果我尝试其他工具来获取哈希,我会得到第二个结果,所以看起来 PHP 的结果是正确的。
问题:如何使用 as3crypto 获得相同的哈希?
顺便说一句:在测试时,我发现使用 as3crypto 的另一种方法给了我另一个(错误的?)结果:
var src:ByteArray = new ByteArray();
src.writeUTF("12345");
var digest:ByteArray = sha1.hash(src);
trace('SHA:' + Hex.fromArray(digest));
结果:b98cfbc53daec4029895585ab198f7403d0d0506