HarmonyOS AES128加密和sm3国密加解密的方法

目前项目需求有AES128加密和sm3国密加解密的需求,有没有相关文档或者方法!

HarmonyOS
2024-12-25 09:44:50
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

AES128加解密参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-aes-sym-encrypt-decrypt-gcm-V5

sm3加密,可以参考以下代码,也可以参考链接:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-sm2-asym-encrypt-decrypt-V5

import cryptoFramework from '@ohos.security.cryptoFramework';
import { BusinessError } from '@ohos.base';
import util from '@ohos.util';
import buffer from '@ohos.buffer';

function stringToUint8Array(str: string) {
  return new Uint8Array(buffer.from(str, 'utf-8').buffer);
}
let base64 = new util.Base64Helper(); // 以Promise方式完成摘要
function doMdByPromise() {
  // 摘要算法名称。
  let mdAlgName = "SM3";
  // 要进行摘要的数据。
  let message = "Hello,中国";
  let md = cryptoFramework.createMd(mdAlgName);
  console.info("[Promise]: Md algName is: " + md.algName);
  let promiseMdUpdate = md.update({ data: stringToUint8Array(message) });
  promiseMdUpdate.then(() => {
    // 调用 digest() 以返回结果。
    let PromiseMdDigest = md.digest();
    return PromiseMdDigest;
  }).then(digestOutput => {
    let mdOutput = digestOutput.data;
    let str2 = base64.encodeToStringSync(mdOutput);
    let str = uint8ArrayToHexStr(mdOutput)
    console.info("[Promise]: MD result: " + mdOutput);
    let mdLen = md.getMdLength();
    console.info("[Promise]: MD len: " + mdLen);
  }).catch((error: BusinessError) => {
    console.error("[Promise]: error: " + error.message);
  });
}
function uint8ArrayToHexStr(data: Uint8Array): string {
  let hexString = "";
  let i: number;
  for (i = 0; i < data.length; i++) {
    let char = ('00' + data[i].toString(16)).slice(-2);
    hexString += char;
  }
  return hexString;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
分享
微博
QQ
微信
回复
2024-12-25 11:07:44
相关问题
HarmonyOS SM2,SM4加解密使用demo
809浏览 • 1回复 待解决
如何使用SM2算法进行加解密
5706浏览 • 1回复 待解决
HarmonyOS AES128|CBC|NoPadding 加密报错
401浏览 • 1回复 待解决
HarmonyOS AES128/CBC/NoPadding加密模式报错
410浏览 • 1回复 待解决
HarmonyOS 如何使用SM3加密
808浏览 • 1回复 待解决
HarmonyOS SM3加密怎么写呢?
564浏览 • 1回复 待解决
能否提供一个SM3加密案例
1045浏览 • 1回复 待解决
能否提供一个关于SM3加密demo?
1226浏览 • 1回复 待解决
HarmonyOS SM3验签
616浏览 • 1回复 待解决
HarmonyOS AES加解密咨询
691浏览 • 1回复 待解决
HarmonyOS AES加解密问题
669浏览 • 1回复 待解决
aes-128加密问题如何实现?
552浏览 • 1回复 待解决
HarmonyOS Sm2DES加解密问题
1000浏览 • 1回复 待解决
HarmonyOS RAS加密AES加密解密
430浏览 • 1回复 待解决
HarmonyOS AES-CBC加解密
593浏览 • 1回复 待解决
HarmonyOS 有没有sm3摘要算法例子?
596浏览 • 1回复 待解决
HarmonyOS SM2转换公钥失败
643浏览 • 1回复 待解决
HarmonyOS SM2/SM4结合加解密
589浏览 • 1回复 待解决