HarmonyOS 鸿蒙Next MD5摘要算法如何转string

发布于 1周前 作者 bupafengyu 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next MD5摘要算法如何转string

let mdAlgName = ‘MD5’; // 摘要算法名
let md = cryptoFramework.createMd(mdAlgName);
// 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
await md.update({ data: new Uint8Array(buffer.from(str, ‘utf-8’).buffer) });
let mdResult = await md.digest();
console.info(‘Md result:’ + mdResult.data);
这里的mdresult 为 DataBlob 如何转换成string

 

3 回复
base64格式字符串:new util.Base64Helper().encodeToStringSync(str)
十六进制字符串:buffer.from(data).toString('hex')
代码如下: 主要通过util 中的 Base64Helper 实现转换
async cryptoString(str: string) {
    let mdAlgName = 'MD5'; // 摘要算法名
    let md = cryptoFramework.createMd(mdAlgName);
    // 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
    await md.update({ data: new Uint8Array(buffer.from(str, 'utf-8').buffer) });
    let mdResult = await md.digest();
    let base = new util.Base64Helper();
    let encodeString = base.encodeToStringSync(mdResult.data);
    console.info('Md result 1:' + encodeString );
  }

在HarmonyOS(鸿蒙)系统中,将MD5摘要算法的结果转换为字符串是一个常见的需求。MD5摘要通常是一个128位的二进制数据(即16字节),为了将其转换为可读的字符串格式,常见的做法是使用十六进制(hexadecimal)表示。

以下是一个简单的步骤和示例代码,用于将MD5摘要转换为字符串:

  1. 计算MD5摘要:首先,使用适当的API计算数据的MD5摘要。

  2. 转换为十六进制字符串:然后,将得到的二进制数据转换为十六进制格式的字符串。

示例代码(假设使用Java):

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5ToString {
    public static String md5ToHex(byte[] md5Bytes) {
        StringBuilder hexString = new StringBuilder();
        for (byte b : md5Bytes) {
            String hex = Integer.toHexString(0xff & b);
            if (hex.length() == 1) hexString.append('0');
            hexString.append(hex);
        }
        return hexString.toString();
    }

    public static void main(String[] args) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            byte[] md5Bytes = md.digest("your input string".getBytes());
            String md5Hex = md5ToHex(md5Bytes);
            System.out.println(md5Hex);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部