HarmonyOS鸿蒙Next中ArkTS获取MD5值

HarmonyOS鸿蒙Next中ArkTS获取MD5值

ArkTs 如何获取MD5值,其中回调写法:官网中有示例,《摘要算法》,主要是结果需要转一下16进制编码

function getMd5String(content: string): string {
  console.log("[Promise]: getMd5String result: " + content);
  var md = cryptoFramework.createMd("MD5");
  md.update({ data: stringToUnit8Array(content) });
  md.digest((err1, mdOutput) => {
    let str = uint8ArrayToHexStr(mdOutput.data);
    let str1 = uint8ArrayToHexStr1(mdOutput.data);
    console.log("[Promise]: getMd5String result: " + mdOutput.data);
    console.log("[Promise]: getMd5String result: " + str);
    console.log("[Promise]: getMd5String result: " + str1);
  });
  return "";
}

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;
}

function uint8ArrayToHexStr1(data: Uint8Array): string {
  return Array.prototype.map
    .call(data, (x) => ('00' + x.toString(16)).slice(-2))
    .join('');
}

更多关于HarmonyOS鸿蒙Next中ArkTS获取MD5值的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fcrypto-js

用这种也行

//第一步在需要使用到的页面,导入CryptoJS
import { CryptoJS } from '[@ohos](/user/ohos)/crypto-js'
//第二步在需要使用到md5的业务逻辑,调用md5算法
var hash = CryptoJS.MD5("123456") //传参是需要加密的内容,返回值是加密后的数据

更多关于HarmonyOS鸿蒙Next中ArkTS获取MD5值的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


npm install crypto-js

import CryptoJS from 'crypto-js';

function getMD5(input: string): string {
  return CryptoJS.MD5(input).toString();
}

// 使用示例 const myString = “Hello, World!”; const md5Value = getMD5(myString); console.log(md5Value); // 输出字符串的 MD5 值

用中文的时候,这个算出来的md5码不对

那是里面的stringToUnit8Array()转码有问题,这个只能转西方字符串,带中文的得另找转码方法。util.TextEncoder可试试看,还没测过;同样问题在AES/RSA加密中也存在。

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

试了一下,TextEncode可以,用TextEncode的话不管中英文,md5都和预期一样,

在HarmonyOS鸿蒙Next中,使用ArkTS获取MD5值可以通过crypto-js库实现。首先,安装crypto-js库,然后在代码中导入并使用MD5函数。以下是一个示例:

import { MD5 } from 'crypto-js';

let str = 'Hello, HarmonyOS!';
let md5Value = MD5(str).toString();
console.log('MD5值:', md5Value);

此代码将字符串Hello, HarmonyOS!转换为MD5值并输出。确保项目中已正确配置crypto-js库。

回到顶部