想了解一下MD5算法示例。

MD5算法示例。

HarmonyOS
2024-06-05 23:24:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
失望的满天星
function stringToUint8Array(str: string) { 
  return new Uint8Array(buffer.from(str,'utf-8').buffer); 
} 
 
function uint8ArrayToString(array:Uint8Array) { 
  let out: string = ''; 
  let index: number = 0; 
  let len: number = array.length; 
  while (index < len) { 
    let character = array[index++]; 
    switch(character >> 4) { 
      case 0: 
      case 1: 
      case 2: 
      case 3: 
      case 4: 
      case 5: 
      case 6: 
      case 7: 
        out += String.fromCharCode(character); 
        break; 
      case 12: 
      case 13: 
        out += String.fromCharCode(((character & 0x1F) << 6) | (array[index++] & 0x3F)); 
        break; 
      case 14: 
        out += String.fromCharCode(((character & 0x0F) << 12) | ((array[index++] & 0x3F) << 6) | ((array[index++] & 0x3F) << 0)); 
        break; 
      default: 
        break; 
    } 
  } 
  return out; 
} 
 
async function doMd5() { 
 
  let TAG='Test-'; 
 
  let mdAlgName = 'MD5'; 
 
  // let message = “ahdjashdjahduqwyieqwijkdals45451234545155aadasdadawdsa”; 
 
  let md = cryptoFramework.createMd(mdAlgName); 
 
  console.info('mdAlgName:' + md.algName); 
 
  let promiseMdUpdate = md.update({ data: stringToUint8Array(bodyStr) }); 
 
  promiseMdUpdate.then(() => { 
 
    let PromiseMdDigest = md.digest(); 
 
    //console.log(“MD5:”+PromiseMdDigest); 
 
    return PromiseMdDigest; 
 
  }).then(digestOutput => { 
 
    let mdOutput = digestOutput; 
 
    console.info(TAG+'Result:' + mdOutput.data); 
 
    //转成16进制 
 
    let buf=buffer.from(mdOutput.data); 
 
    console.log(TAG+'Hex222:'+buf.toString('hex')); 
 
    let mdLen = md.getMdLength(); 
 
    console.info(TAG+"MDlength: " + mdLen); 
 
    //转成base64 
 
    let base64=new util.Base64Helper; 
 
    let resBase64=base64.encodeToStringSync(mdOutput.data) 
 
    console.log(TAG+'base64:'+resBase64) 
 
  }).catch((error: BusinessError) => { 
 
    console.error('error:' + error.message); 
 
  }); 
 
}
分享
微博
QQ
微信
回复
2024-06-06 23:06:39
相关问题
没有找到相应的MD5算法实现
280浏览 • 1回复 待解决
想了解一下SM4相关案例
328浏览 • 1回复 待解决
dlopen打开.so文件并使用md5加密
390浏览 • 1回复 待解决
如何通过uuid生成、md5、RSA、AES、 DES
644浏览 • 1回复 待解决
如何对字符串进行MD5哈希处理
1050浏览 • 1回复 待解决
如何解决MD5加密中遇到的问题
232浏览 • 1回复 待解决
ob有如何报错,麻烦帮忙看一下
3434浏览 • 1回复 待解决
请教一下如何开关闪光灯
188浏览 • 1回复 待解决
请教一下关于应用分栏实现
276浏览 • 1回复 待解决
请教一下如何实现函数的重载
280浏览 • 1回复 待解决
请问一下tab按钮组切换效果
432浏览 • 1回复 待解决
编译OpenHarmony2.0失败,求助一下
7610浏览 • 3回复 已解决
请教一下关于Ticktimer 的疑问?
2129浏览 • 1回复 待解决
谁分享一下如何实现匿名内部类
340浏览 • 1回复 待解决
分享一下你的鸿蒙系统使用感受吧
2900浏览 • 1回复 待解决
请问一下鸿蒙的pad应用该如何签名?
6795浏览 • 1回复 待解决
帐号授权相关问题,和大家讨论一下
11526浏览 • 3回复 待解决