先在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); } }鸿蒙中加密库使用
张小明
前端开发工程师
伤口结痂后还有必要使用促进愈合的药物吗?
口腔生理环境特殊,伤口愈合慢且易感染,对护理和药物适配性要求极高,而伤口愈合全周期亦需分阶段护理。在这一领域,虽有3M、施乐辉等国际企业及稳健医疗、振德医疗等国内企业布局相关产品,口腔健康细分领域也有高露洁、…
基于RKLLM的Qwen3-vl推理代码解析
写在前面 参考历史博客,成功把Qwen3-vl2b部署在RK3588上,但是对代码处理流程模糊,C底子差,遂做笔记于CSDN。难免出错,欢迎大家指出,交流。 项目结构build 通常是编译构建产物的临时目录,存放编译…
adb常用指令
1.日志抓取抓取所有日志(推荐)adb logcat -b main -b system -b radio -b events -v time > all_logs.txt这是最常用的命令,可一次性捕获 main(主应用日志)、system(系统日志)、radio&#x…
光圈智选首页升级:升佣 + 选品提速双 buff
光圈智选新版首页已完成重构上线,围绕带货场景中的“高效选品”与“收益提升”两大核心痛点优化,打通从选品到收益转化的全链路体验,为达人、商家的带货运营提供更高效的工具支撑。选品能力升级:精准匹配需求,提升选品…
收藏!AI焦虑别慌,程序员为啥要学大模型?零基础系统入门指南
近来技术圈的“AI焦虑”持续蔓延,“大模型”“AI替代程序员”这类话题反复霸占热搜与技术社群,不少从业者陷入莫名的恐慌与迷茫。 相信很多程序员都有这样的疑问:在AI浪潮席卷各行各业的当下,到底该不该主动掌握AI大模型相关能力&…
三菱PLC与变频器通信程序——基于结构化文体语言版的PID控制及多功能监控
ST结构化文体语言版,三菱PLC与变频器通信程序加PID控制可以直接与三菱A800,A700,E700,变频器直接通信,如要与其他变频器通信请参考相关手册更改通信地址即可。 本程序可以正传,反转,点动,故障复位ÿ…