HarmonyOS 如何使用SM3加密

HarmonyOS  如何使用SM3加密

HarmonyOS
2024-08-13 14:53:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

参考示例如下:

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; 
    //Uint8Array转base64 
    let str2 = base64.encodeToStringSync(mdOutput); 
    //转16进制 
    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); 
  }); 
} 
 
//摘要结果是Uint8Array类型,转换得到十六进制字符串数据 
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; 
}
分享
微博
QQ
微信
回复
2024-08-13 21:41:16
相关问题
HarmonyOS SM3加密怎么写的呢?
41浏览 • 1回复 待解决
能否提供一个SM3加密案例
611浏览 • 1回复 待解决
能否提供一个关于SM3加密的demo?
685浏览 • 1回复 待解决
HarmonyOS SM2加签验签SM3摘要算法使用
490浏览 • 1回复 待解决
SM3摘要算法对明文进行编码的转换
1096浏览 • 1回复 待解决
HarmonyOS SM4-ECB-NoPadding加密
46浏览 • 1回复 待解决
HarmonyOS SM2,SM4国密加解密使用demo
283浏览 • 1回复 待解决
如何使用AES ECB 加密方式?
214浏览 • 1回复 待解决
如何使用SM4的CBC模式加解密
966浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
480浏览 • 1回复 待解决
如何使用国密SM2算法进行加解密
4310浏览 • 1回复 待解决
HarmonyOS RAS加密,AES加密和解密
54浏览 • 1回复 待解决
RSA 加密的具体使用方法
194浏览 • 1回复 待解决