HarmonyOS 鸿蒙Next下md5方法的API是啥,有没有调用示例

HarmonyOS 鸿蒙Next下md5方法的API是啥,有没有调用示例 请问鸿蒙下md5方法的API是啥,有没有调用示例

3 回复

三方库 [@ohos/crypto-js](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fcrypto-js) 可以参考
[@ohos/crypto-js](https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fcrypto-js)

更多关于HarmonyOS 鸿蒙Next下md5方法的API是啥,有没有调用示例的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以使用这个仓库哦:[@ohos.security.cryptoFramework (加解密算法库框架)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-cryptoframework-V5#导入模块)

import { buffer, util } from '@kit.ArkTS'; 
import { cryptoFramework } from '@kit.CryptoArchitectureKit'; 
import { BusinessError } from '@kit.BasicServicesKit'; 

function stringToUint8Array(str: string) { 
  return new Uint8Array(buffer.from(str,'utf-8').buffer); 
} 

async function doMd5() { 
  let TAG='Test-'; 
  let mdAlgName = 'MD5'; 
  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); 
  }); 
}

在HarmonyOS(鸿蒙)系统中,若你需要使用MD5哈希算法,通常会通过系统提供的加密库来实现。鸿蒙系统有自己的原生API,不直接依赖于Java或C语言的特定库(如Java的MessageDigest或C语言的OpenSSL等)。

对于MD5方法,鸿蒙提供了相应的API接口。你可以使用ohos.security.crypto.Hash类来计算MD5哈希值。以下是一个简化的调用示例:

import ohos.security.crypto.Hash;
import ohos.security.crypto.Hash.Digest;

public class MD5Example {
    public static void main(String[] args) {
        String input = "your_input_string";
        byte[] inputBytes = input.getBytes();

        try {
            Hash hash = Hash.getInstance(Hash.Algorithm.MD5);
            Digest digest = hash.digest(inputBytes);
            byte[] md5Bytes = digest.getMessageDigest();

            // Convert md5Bytes to hex string for display
            StringBuilder sb = new StringBuilder();
            for (byte b : md5Bytes) {
                sb.append(String.format("%02x", b));
            }
            String md5String = sb.toString();
            System.out.println("MD5: " + md5String);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意:上述代码示例是为了说明API的使用方式,并非直接在鸿蒙应用中的实际代码(因为鸿蒙应用通常使用ArkUI或ETS UI框架,以及JS/TS语言,而非纯Java)。实际开发中,你需根据鸿蒙开发文档使用对应的API和框架。

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

回到顶部