我正在尝试使用 as3corelib md5某个文件,但是如果我将as3哈希与php进行比较,我会得到不同的字符串。
这就是我的所作所为:
_loader = new URLLoader();
_loader.load( new URLRequest( "image.jpg" ) );
_loader.addEventListener( Event.COMPLETE, completeHandler );
private function completeHandler( event:Event ):void {
var data:ByteArray = new ByteArray();
data.writeUTFBytes( _loader.data );
var hash:MD5Stream = new MD5Stream();
trace(hash.complete(data));
}
我已经用Google搜索了这个问题,找到了这个post,其中讨论了类似的事情(制作一个字符串的哈希)。
有什么想法吗?
答案 0 :(得分:3)
尝试在load()调用之前将loader dataFormat 属性设置为 URLLoaderDataFormat.BINARY :
_loader = new URLLoader();
_loader.dataFormat = URLLoaderDataFormat.BINARY;
_loader.load( new URLRequest( "image.jpg" ) );
_loader.addEventListener( Event.COMPLETE, completeHandler );
private function completeHandler( event:Event ):void {
var hash:MD5Stream = new MD5Stream();
trace(hash.complete(_loader.data));
}
然后直接使用_loader.data变量,因为它现在是一个ByteArray