0
  1. 我在adobe air平台使用HTML+JAVASCRITP+CSS开发桌面软件
  2. 我下载 md5.js 将 md5 值计算为相同的 php md5 值
  3. air.filestream 函数读取文件位置并发送到 md5.js 以计算哈希,普通文件(js,php,css,txt)可以计为相同的 php md5 值,但计算图像文件得到 wrroy 哈希,图像不是改变。
var fileStream = new air.FileStream(); 
var target = new air.File(file.nativePath); 
fileStream.open(target , air.FileMode.READ);
var str = fileStream.readMultiByte(target.size,'utf-8'); alert(window.md5(str));
4

1 回答 1

1

您应该使用这个读取二进制数据的库。然后,解压缩 swc 并将 swf 文件放到您的应用程序路径中的 lib 文件夹中。

您必须检查 xml 文件以获取要使用的 md5 函数的限定名称 (.by.blooddy.crypto.MD5.hashBytes(data) )

在 html 标头上添加脚本包含行

<script src="lib/library.swf" type="application/x-shockwave-flash"></script>

你可以使用window.runtime对象的函数:

hash = window.runtime.by.blooddy.crypto.MD5.hashBytes(data);

这个哈希值与你在 php 中使用 md5 获得的哈希值相同。

顺便说一句,您必须使用 readBytes 而不是 readMultiByte 来读取文件。

adobe 链接(在 HTML 页面中使用 ActionScript 库

于 2012-10-04T20:12:30.520 回答