HarmonyOS鸿蒙Next中给一个字符串MD5的demo

HarmonyOS鸿蒙Next中给一个字符串MD5的demo 需要一个对字符串做MD5的Demo,返回值是字符串格式

3 回复
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { buffer, util } from '@kit.ArkTS';

@Component
struct MD5Crypto {
  @State message: string = '点击开始';

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            doMdBySync("")
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

const base = new util.Base64Helper();
function doMdBySync(message:string) {
  let mdAlgName = 'SHA256'; // 摘要算法名
  let md = cryptoFramework.createMd(mdAlgName);
  md.updateSync({ data: new Uint8Array(buffer.from(message, 'utf-8').buffer) });
  let mdResult = md.digestSync();
  console.info('[Sync]:Md result base64:' + base.encodeToStringSync(mdResult.data));
  console.info('Md result hex:' + buffer.from(mdResult.data).toString('hex'));
  let mdLen = md.getMdLength();
  console.info("md len: " + mdLen);
}

更多关于HarmonyOS鸿蒙Next中给一个字符串MD5的demo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,可以使用cryptoFramework模块对字符串进行MD5加密。以下是一个简单的示例代码:

import cryptoFramework from '@ohos.security.cryptoFramework';

async function getMD5(input: string): Promise<string> {
    try {
        // 创建MD5实例
        const md5 = cryptoFramework.createMd('MD5');
        // 初始化
        await md5.init();
        // 更新数据
        const inputBlob = new Uint8Array(input.length);
        for (let i = 0; i < input.length; i++) {
            inputBlob[i] = input.charCodeAt(i);
        }
        await md5.update(inputBlob);
        // 计算MD5值
        const md5Blob = await md5.doFinal();
        // 将结果转换为十六进制字符串
        let result = '';
        for (let i = 0; i < md5Blob.length; i++) {
            result += md5Blob[i].toString(16).padStart(2, '0');
        }
        return result;
    } catch (error) {
        console.error('MD5 calculation failed: ', error);
        return '';
    }
}

// 使用示例
const inputString = 'Hello, HarmonyOS!';
getMD5(inputString).then((md5Hash) => {
    console.log(`MD5 of "${inputString}" is: ${md5Hash}`);
});

这段代码展示了如何使用鸿蒙的cryptoFramework模块对一个字符串进行MD5加密,并将结果以十六进制字符串的形式输出。

在HarmonyOS鸿蒙Next中,可以使用MessageDigest类来计算字符串的MD5值。以下是一个简单的示例代码:

import ohos.security.MessageDigest;
import ohos.utils.HexUtils;

public class MD5Example {
    public static String getMD5(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] digest = md.digest(input.getBytes());
            return HexUtils.toHexString(digest);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        String str = "Hello, HarmonyOS!";
        String md5 = getMD5(str);
        System.out.println("MD5: " + md5);
    }
}

这段代码通过MessageDigest获取MD5实例,将字符串转换为字节数组并进行MD5计算,最后将结果转换为十六进制字符串输出。

回到顶部