HarmonyOS 鸿蒙Next 从图库获取图片后,如何计算该图片的md5(16位字符串)?

发布于 1周前 作者 ionicwang 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 从图库获取图片后,如何计算该图片的md5(16位字符串)?

HarmonyOS 从图库获取图片后,如何计算该图片的md5(16位字符串)?

2 回复

您好!

可以使用该方法:

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);
});<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

API接口参考如下:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-hash-V5#hashhash

在HarmonyOS鸿蒙Next系统中,从图库获取图片后计算该图片的MD5(16位字符串)值,通常涉及以下步骤:

  1. 获取图片输入流:由于图库Picker返回的是沙箱路径,不能直接用于文件访问,需通过HarmonyOS提供的文件访问API获取图片的InputStream。
  2. 计算MD5值:使用Java的MessageDigest类,结合获取到的InputStream,来计算图片的MD5值。
  3. 转换MD5值:将计算得到的MD5字节数组转换为十六进制字符串。但需要注意的是,标准的MD5值通常是32位十六进制数,如果需求是16位字符串,则可能需要对32位MD5值进行进一步处理(如取中间16位或进行其他转换),但这不是标准的MD5表示方法。

示例代码(需根据实际情况调整):

InputStream inputStream = ...; // 通过HarmonyOS API获取图片InputStream
String md5 = getFileMD5(inputStream).substring(8, 24); // 假设getFileMD5是计算32位MD5的方法,这里取中间16位

// ...getFileMD5方法实现与上文相同...

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部