HarmonyOS 鸿蒙Next Hmac MD5算法如何实现
HmacMD5算法如何实现 HarmonyOS 鸿蒙Next
请问有哪位大佬知道鸿蒙中怎么实现例如java中的HmacMD5算法?鸿蒙的文档里好像HMAC那一块不支持MD5的算法
感谢大佬的指点,还有个问题就是crypto-js的出入参都是string的,我项目里的秘钥和待加密数据都是Uint8Array类型的,我用TextDecoder把Uint8Array转成string后加密出来的结果再转成Uint8Array,但是结果和java里的不一样,请问有啥建议吗?
需要参考java代码自己写方法了,我之前帮别人写过一个,可以参考 // Java版的hexString2Bytes转换为TypeScript版 function hexString2Bytes(src: string): Uint8Array { const l = src.length / 2; const ret: number[] = new Array(l); for (let i = 0; i < l; i++) { ret[i] = parseInt(src.substr(i * 2, 2), 16); } return new Uint8Array(ret); }
参考地址:https://developer.huawei.com/consumer/cn/blog/topic/03154277733758002
HmacMD5是从MD5哈希函数构造的一种键控哈希算法,实现HmacMD5算法在HarmonyOS鸿蒙Next系统中的步骤如下:
- 创建MD5算法实例:在鸿蒙中,可以使用
ohos.utils.digest.DigestUtils
类来创建MD5算法实例,通过DigestUtils.getDigest("MD5")
方法获取MD5算法实例。 - 设置密钥与消息数据:HmacMD5算法需要密钥与消息数据,将密钥与消息数据混合后,进行哈希计算。
- 计算哈希值:使用MD5哈希函数对混合后的数据进行哈希计算,得到初步的哈希值。再将初步哈希值与密钥混合,再次应用MD5哈希函数,得到最终的128位哈希值。
- 结果处理:计算完成后,可以将哈希值转换为十六进制字符串,以便于使用与存储。
HmacMD5算法在鸿蒙Next系统中的实现过程与在其他平台类似,关键在于正确应用MD5哈希函数,并结合密钥进行多次哈希计算。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。