HarmonyOS 关于求文件的md5

export async function md5File(file: string): Promise<string> {
  let md = cryptoFramework.createMd('MD5');
  let srcFile = fs.openSync(file, fs.OpenMode.READ_ONLY)
  let bufSize = 4096;
  let readSize = 0;
  let buf = new ArrayBuffer(bufSize);
  let readOptions: ReadOptions = {
    offset: readSize,
    length: bufSize
  };
  let readLen = fs.readSync(srcFile.fd, buf, readOptions);
  while (readLen > 0) {
    readSize += readLen;
    await md.update({ data: new Uint8Array(buf) })
    readOptions.offset = readSize;
    readLen = fs.readSync(srcFile.fd, buf, readOptions);
  }
  fs.closeSync(srcFile)
  let mdResult = await md.digest()
  let data = mdResult.data
  return buffer.from(data).toString("hex")
}

是正确的吗?为啥计算出的md5值和真实的有差距

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

用如下接口获取文件哈希值:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-hash-V5

getContext(this).resourceManager.getRawFileContent('c277909072a52ba40f110cee1ddfb155.zip', (_err, value) => {
  let myBuffer: ArrayBufferLike = value.buffer
  let context = getContext(this);
  //沙箱路径
  let filePath = context.filesDir + "/testTemp.zip";
  console.log("testTag-filePath:" + filePath);
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  let writeLen = fs.writeSync(file.fd, myBuffer);
  console.info("testTag-write data to file succeed and size is:" + writeLen);
  fs.closeSync(file);
  Hash.hash(filePath, "md5").then((str: string) => {
    console.info("calculate file hash succeed:" + str);
  }).catch((err: BusinessError) => {
    console.error("calculate file hash failed with error message: " + err.message + ", error code: " + err.code);
  });
});
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 如何计算文件md5
656浏览 • 1回复 待解决
HarmonyOS md5进行加密
37浏览 • 1回复 待解决
HarmonyOS MD5加密相关demo
484浏览 • 1回复 待解决
dlopen打开.so文件并使用md5加密
773浏览 • 1回复 待解决
HarmonyOS 如何获取媒体资源md5信息
764浏览 • 1回复 待解决
MD5加密后解码结果乱码
172浏览 • 1回复 待解决
求告知ArkTS如何获取MD5
730浏览 • 0回复 待解决
HarmonyOS 请问有提供md5算法库吗?
247浏览 • 1回复 待解决
没有找到相应MD5算法实现
683浏览 • 1回复 待解决
如何解决MD5加密中遇到问题
927浏览 • 1回复 待解决
如何对ArrayBuffer字节流进行MD5
223浏览 • 1回复 待解决
HarmonyOS 如何将md5变成字符串?
291浏览 • 1回复 待解决
想了解一下MD5算法示例。
830浏览 • 1回复 待解决
如何通过uuid生成、md5、RSA、AES、 DES
1921浏览 • 1回复 待解决
如何对字符串进行MD5哈希处理
2670浏览 • 1回复 待解决