HarmonyOS鸿蒙Next中CryptoUtil.digestSync进行md5摘要为什么返回的不是一个16字节的摘要

HarmonyOS鸿蒙Next中CryptoUtil.digestSync进行md5摘要为什么返回的不是一个16字节的摘要 CryptoUtil.digestSync 进行md5摘要 为什么返回的不是一个16字节的摘要

3 回复

接口返回的数值类型是这个,楼主想要16字节的摘要可以自行转换回去

cke_381.png

更多关于HarmonyOS鸿蒙Next中CryptoUtil.digestSync进行md5摘要为什么返回的不是一个16字节的摘要的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,CryptoUtil.digestSync返回的不是16字节MD5摘要,而是十六进制字符串格式的摘要。这是设计上的实现差异,目的是提供更可读的摘要格式。如需原始字节,需将返回的十六进制字符串转换为字节数组。

在HarmonyOS Next中,CryptoUtil.digestSync方法返回的MD5摘要实际上是16字节的二进制数据,但默认会转换为十六进制字符串形式输出(32个字符)。这是为了方便开发者直接使用可读的字符串格式。

如果需要获取原始的16字节二进制数据,可以使用ArrayBufferUint8Array来处理返回值。例如:

let md5Bytes = new Uint8Array(CryptoUtil.digestSync('md5', inputData));

这种设计符合常见的加密库实现方式,既保持了数据完整性又便于调试和使用。十六进制字符串表示法也是标准做法(如Linux的md5sum命令输出也是32位十六进制字符串)。

回到顶部