先在oh-package.json5中引用库
"@ohos/crypto-js": "2.0.5"
在创建工具类,供外部调用
// CryptoUtils.ts
import { CryptoJS } from '@ohos/crypto-js';
export class DesEncryptorJS {
/**
* DES 加密(ECB + PKCS7)
* @param data 明文
* @param keyStr 密钥(会自动补齐 8 位)
* @returns Base64 加密结果
*/
static desEncrypt(data: string, keyStr: string): string {
// DES key 必须 8 字节
let key = keyStr.padEnd(8, '0');
let parsedKey = CryptoJS.enc.Utf8.parse(key);
let encrypted = CryptoJS.DES.encrypt(data, parsedKey, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
}
/**
* DES 解密(ECB + PKCS7)
* @param encryptedData Base64 密文
* @param keyStr 密钥
* @returns 明文
*/
static desDecrypt(encryptedData: string, keyStr: string): string {
let key = keyStr.padEnd(8, '0');
let parsedKey = CryptoJS.enc.Utf8.parse(key);
let decrypted = CryptoJS.DES.decrypt(encryptedData, parsedKey, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
/**
* AES 加密(默认 ECB + PKCS7)
* @param data 明文
* @param keyStr 密钥(16/24/32 字节)
* @returns Base64 密文
*/
static aesEncrypt(data: string, keyStr: string): string {
let key = CryptoJS.enc.Utf8.parse(keyStr);
let encrypted = CryptoJS.AES.encrypt(data, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return encrypted.toString();
}
/**
* AES 解密
* @param encryptedData Base64 密文
* @param keyStr 密钥
* @returns 明文
*/
static aesDecrypt(encryptedData: string, keyStr: string): string {
let key = CryptoJS.enc.Utf8.parse(keyStr);
let decrypted = CryptoJS.AES.decrypt(encryptedData, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
/**
* MD5 加密
* @param data 明文
* @returns MD5 十六进制字符串
*/
static md5(data: string): string {
return CryptoJS.MD5(data).toString(CryptoJS.enc.Hex);
}
}
鸿蒙中加密库使用
安卓理事人2026-01-17 9:32
相关推荐
mmsx4 分钟前
一个黑边 Bug 修了两版:自己算矩阵直接黑屏,借库重建只用了一行 setZoomweixin_BYSJ19875 分钟前
springboot小区物业管理小程序---附源码45555枢影Kernel9 分钟前
Android CLI 与 Android Skills 最佳实践:把 AI Agent 接入可验证的 Android 开发流程coder_lorraine15 分钟前
Halo 2.x 回收站文章无法删除?一篇文章教你彻底解决索隆zoro19 分钟前
Army 进阶:DML 操作体系与 Spring AI 集成吃饱了得干活28 分钟前
为什么你的Service越写越臃肿?三层架构的“业务逻辑层”是个黑盒趴下吧29 分钟前
spring boot启动流程总结码农进化录34 分钟前
Java 程序员的 AI 进化论 | AI 帮我做 MySQL 表结构升级,三天活变半天闻道且行之34 分钟前
图片处理助手|C++ 手搓离线 AI 抠图工具,U2Net 原理到落地一次讲透三言老师36 分钟前
K8s集群运行时异常趋势分析预警实操