HarmonyOS HmacSHA256算法

当前业务需要使用HmacSHA256编码,根据文档开发

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-compute-mac-V5#开发步骤

发现此算法针对不同文本得到的加密值相同,希望提供有效HmacSHA256编码

附其他系统实现:

public static String hmac(String msg, String secret) {
  String hash = "";
  try {
    Mac sha256mac = Mac.getInstance("HmacSHA256");
    SecretKeySpec secretKey = new SecretKeySpec(secret.getBytes(),"HmacSHA256");
    sha256mac.init(secretKey);

    hash = HexUtils.toHexString(sha256mac.doFinal(msg.getBytes()));
  } catch (NoSuchAlgorithmException | InvalidKeyException e) {
    e.printStackTrace();
  }
  return hash;
}
HarmonyOS
2024-12-25 09:40:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

请参考示例如下:

async function calculateHmacSHATest() {
  try {
    let macAlgName = "SHA256";
    let key = "02391723418924666645";
    let keyBytes = stringToUint8Array("abccba");
    let message = "aabbccddee112233ffgghh";
    let dataBytes = stringToUint8Array(message);
    let symKey = await cryptoFramework.createSymKeyGenerator("HMAC").convertKey({ data: keyBytes });
    let mac = cryptoFramework.createMac(macAlgName);
    await mac.init(symKey);
    await mac.update({ data: dataBytes });
    let macOutput = await mac.doFinal();
    let str = uint8ArrayToHexStr(macOutput.data)
    console.info("[ETS HMAC]: result bytes : " + macOutput.data);
    console.info("[ETS HMAC]: result string : " + str);
  } catch (err) {
    console.error(err)
  }
}

// 字符串转成字节流
export function stringToUint8Array(str: string) {
  return new Uint8Array(buffer.from(str, 'utf-8').buffer);
}

//Uint8Array转十六进制
export function uint8ArrayToHexStr(data: Uint8Array): string {
  return buffer.from(data).toString('hex');
}
分享
微博
QQ
微信
回复
2024-12-25 11:27:50
相关问题
加解密HmacSha1 、HmacSha256、aes参考Demo
2353浏览 • 1回复 待解决
HarmonyOS HmacSHA1加签算法实现
1039浏览 • 1回复 待解决
HarmonyOS HmacSHA1 加密算法 参数问题
338浏览 • 1回复 待解决
HarmonyOSHmacSHA1加签算法实现?
212浏览 • 0回复 待解决
ECC算法是否支持secp256r1
767浏览 • 1回复 待解决
HarmonyOS 如何进行HmacSHA1加密
277浏览 • 1回复 待解决
HarmonyOS module的SHA256
227浏览 • 1回复 待解决
HarmonyOS 异或算法
238浏览 • 1回复 待解决
HarmonyOS 摘要算法问题
114浏览 • 1回复 待解决
HarmonyOS 国密算法API
700浏览 • 0回复 待解决
HarmonyOS 加解密算法匹配
282浏览 • 1回复 待解决
HarmonyOS AES加密算法demo
336浏览 • 1回复 待解决
HarmonyOS RSA算法如何使用
470浏览 • 1回复 待解决
HarmonyOS 有提供hs256签名的能力吗
163浏览 • 1回复 待解决
HarmonyOS 是否有类似drawBitmapMesh的算法
410浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
258浏览 • 1回复 待解决
HarmonyOS RSA加密算法实现
334浏览 • 1回复 待解决
HarmonyOS 需要MD5加密算法
346浏览 • 1回复 待解决