HarmonyOS鸿蒙Next中在加解密算法框架中使用HMAC算法,采用SHA256,怎么传入自己生成的密钥去实现加密

HarmonyOS鸿蒙Next中在加解密算法框架中使用HMAC算法,采用SHA256,怎么传入自己生成的密钥去实现加密 在加解密算法框架中使用HMAC 算法,采用SHA256,怎么传入自己生成的密钥去实现加密

3 回复

请参考以下代码:

async function getHmac1(message:string){

  try {

    let macAlgName = "SHA256";

    let mac =cryptoFramework.createMac(macAlgName)

    console.info("[Promise]: Mac algName is: " + mac.algName);

    let arr = stringToUint8Array("12345678abcdefgh45623547895645548");

    let KeyBlob: cryptoFramework.DataBlob = {data:arr}

    let symKeyGenerator = cryptoFramework.createSymKeyGenerator("HMAC");

    const symKey=await symKeyGenerator.convertKey(KeyBlob);

    await mac.init(symKey)

    await mac.update({data:stringToUint8Array(message)});

    let macOutpt= await mac.doFinal();

    const res=buffer.from(macOutpt.data).toString('hex');

    console.log(logPre + "Hmac:"+res);

  } catch (err){

    console.log("err:"+err)

  }
}

更多关于HarmonyOS鸿蒙Next中在加解密算法框架中使用HMAC算法,采用SHA256,怎么传入自己生成的密钥去实现加密的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,使用HMAC算法结合SHA256进行加密时,可以通过CryptoFramework模块实现。首先,使用cryptoFramework.createMac创建HMAC实例,指定算法为HMAC|SHA256。然后,使用cryptoFramework.createSymKeyGenerator生成对称密钥,传入自定义的密钥数据。接着,调用Mac.init方法初始化HMAC实例,传入生成的密钥。最后,使用Mac.updateMac.doFinal进行数据加密,生成HMAC值。具体代码示例如下:

import cryptoFramework from '[@ohos](/user/ohos).security.cryptoFramework';

// 自定义密钥数据
let keyData = new Uint8Array([/* 你的密钥数据 */]);

// 创建HMAC实例
let macAlgName = 'HMAC|SHA256';
let mac;
try {
  mac = cryptoFramework.createMac(macAlgName);
} catch (error) {
  console.error('Failed to create Mac instance');
}

// 生成对称密钥
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES128');
let symKey;
try {
  symKey = symKeyGenerator.convertKey(keyData);
} catch (error) {
  console.error('Failed to convert key');
}

// 初始化HMAC实例
try {
  mac.init(symKey);
} catch (error) {
  console.error('Failed to init Mac');
}

// 更新数据
let input = new Uint8Array([/* 你的数据 */]);
try {
  mac.update(input);
} catch (error) {
  console.error('Failed to update Mac');
}

// 生成HMAC值
let macOutput;
try {
  macOutput = mac.doFinal();
} catch (error) {
  console.error('Failed to doFinal Mac');
}

console.info('HMAC value: ' + macOutput.data);
``

通过以上步骤,你可以在鸿蒙Next中使用HMAC算法结合SHA256,并传入自定义密钥进行加密。

在HarmonyOS鸿蒙Next中使用HMAC算法结合SHA256进行加密时,首先需要生成自己的密钥。然后,通过HmacUtils类进行加密操作。以下是关键代码示例:

// 导入相关类
import ohos.security.hmac.HmacUtils;
import ohos.security.hmac.HmacAlgorithm;

// 生成密钥
byte[] secretKey = ...; // 自定义密钥

// 要加密的数据
byte[] data = "要加密的数据".getBytes(StandardCharsets.UTF_8);

// 使用HMAC-SHA256进行加密
byte[] hmacResult = HmacUtils.hmac(secretKey, data, HmacAlgorithm.SHA256);

// 输出加密结果
System.out.println(new String(hmacResult, StandardCharsets.UTF_8));

确保密钥和数据都是有效的字节数组,HmacUtils.hmac方法将返回加密后的结果。

回到顶部