HarmonyOS鸿蒙Next中字节数组进行MD5加密
HarmonyOS鸿蒙Next中字节数组进行MD5加密 找了一圈没找到字节数组进行MD5加密的资料,用字符串加密后转成字节数组又不对,下面是java转换方法,麻烦帮忙实现下
public static byte[] encryptMD5(byte[] rawString) {
if (rawString == null){
return null;
}
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(rawString);
return md5.digest();
} catch (Exception e){
e.printStackTrace();
}
return null;
}
更多关于HarmonyOS鸿蒙Next中字节数组进行MD5加密的实战教程也可以访问 https://www.itying.com/category-93-b0.html
目前md5仅支持对字符串进行加密 参考以下代码demo实例
import { cryptoFramework } from '@kit.CryptoArchitectureKit';
import { buffer, util } from '@kit.ArkTS';
@Entry
@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 message = 'mdTestMessgae'; // 待摘要的数据
let md = cryptoFramework.createMd(mdAlgName);
// 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
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);
}
可以尝试将 单独的byte转成字符串string 加密后在转成byte
更多关于HarmonyOS鸿蒙Next中字节数组进行MD5加密的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙Next)中,对字节数组进行MD5加密可以通过使用系统提供的加密库来实现。鸿蒙系统提供了ohos.security.crypto模块,其中包含了常用的加密算法,包括MD5。
具体步骤如下:
-
导入加密模块:首先需要导入
ohos.security.crypto模块中的Crypto类。import { Crypto } from 'ohos.security.crypto'; -
创建MD5实例:使用
Crypto类创建一个MD5加密实例。let md5 = Crypto.createMd5(); -
更新数据:将需要加密的字节数组传递给MD5实例的
update方法。let data = new Uint8Array([...]); // 替换为实际的字节数组 md5.update(data); -
获取加密结果:调用
digest方法获取MD5加密后的结果。let result = md5.digest(); -
处理结果:
digest方法返回的是一个字节数组,可以根据需要进行进一步处理,例如转换为十六进制字符串。let hexString = Array.from(result).map(byte => byte.toString(16).padStart(2, '0')).join('');
通过以上步骤,可以在鸿蒙OS中对字节数组进行MD5加密。
在HarmonyOS鸿蒙Next中,可以使用MessageDigest类对字节数组进行MD5加密。以下是一个示例代码:
import ohos.security.MessageDigest;
import ohos.utils.HexUtil;
public class MD5Example {
public static String md5(byte[] input) {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digest = md.digest(input);
return HexUtil.toHexString(digest);
}
public static void main(String[] args) {
byte[] data = "Hello, HarmonyOS".getBytes();
String md5Hash = md5(data);
System.out.println("MD5 Hash: " + md5Hash);
}
}
该代码使用MessageDigest类生成MD5哈希值,并通过HexUtil将结果转换为十六进制字符串。

