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计算,最后将结果转换为十六进制字符串输出。

