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
2024-12-20 12:55:11
浏览
收藏 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
微信
回复
2024-12-20 15:37:38
相关问题
HarmonyOS 关于MD5算法问题
371浏览 • 1回复 待解决
HarmonyOS 如何计算文件md5
1001浏览 • 1回复 待解决
HarmonyOS 文件md5值计算问题
351浏览 • 1回复 待解决
HarmonyOS MD5实现
393浏览 • 1回复 待解决
HarmonyOS MD5签名
396浏览 • 1回复 待解决
HarmonyOS md5进行加密
374浏览 • 1回复 待解决
HarmonyOS MD5加密示例
395浏览 • 1回复 待解决
dlopen打开.so文件并使用md5加密
1049浏览 • 1回复 待解决
HarmonyOS MD5加密相关demo
755浏览 • 1回复 待解决
HarmonyOS App备案信息MD5获取
359浏览 • 1回复 待解决
HarmonyOS 密码怎么进行MD5加密
316浏览 • 1回复 待解决
HarmonyOS 咨询下p12文件md5
292浏览 • 1回复 待解决
HarmonyOS 需要MD5加密算法
526浏览 • 1回复 待解决
HarmonyOS MD5加密算法demo
477浏览 • 1回复 待解决
HarmonyOS 如何获取媒体资源md5信息
1166浏览 • 1回复 待解决
HarmonyOS 怎么实现特定MD5加密方式
433浏览 • 2回复 待解决
MD5加密后解码结果乱码
493浏览 • 1回复 待解决
HarmonyOS 字符串Md5加密问题
318浏览 • 1回复 待解决
HarmonyOS @yunkss/eftool生成MD5库报错
224浏览 • 1回复 待解决
没有找到相应MD5算法实现
1096浏览 • 1回复 待解决