先在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); } }鸿蒙中加密库使用
张小明
前端开发工程师
瑞维美尼:全球首款menin抑制剂,以靶向创新改写难治性白血病格局
在急性白血病的治疗版图中,携带KMT2A基因重排或NPM1突变的亚型长期处于“化疗耐药、复发率高、生存期短”的困境。传统化疗对这类患者的缓解率不足30%,中位生存期仅3-4个月,无数患者在反复治疗与复发中陷入绝境。直到瑞维美尼(Rev…
【Day31】Web 开发入门:HTTP 协议详解(请求 / 响应、状态码、请求头)
本文收录于「Java 学习日记:从入门到架构师」专栏,系统化记录 Java 全栈学习之路,关注专栏解锁更多 Java 基础、框架、底层原理干货~一、为什么要学 HTTP 协议?作为 Java 开发者,无论你是做后端接口开发、S…
大模型RAG架构演进详解:从Naive到Agentic的四代技术突破与应用实践
本文系统梳理了检索增强生成(RAG)架构的演进历程,详细对比了Naive RAG、Advanced RAG、Modular RAG和Agentic RAG四代架构的核心特点与技术突破。从基础三步流程发展到模块化设计和智能体协同,RAG技术通过创新解决了知识更新、语义…
收藏级干货!RAG核心原理+实战场景全解析,小白也能懂的大模型必备技术
一、RAG到底是什么?用“学生写论文”讲明白 RAG(Retrieval-Augmented Generation,检索增强生成)并非某类独立大模型,而是一套“检索前置生成后置”的复合技术架构,核心目标是解决传统大模型“凭记忆答题”的…
口腔伤口可以用什么药物促进愈合
口腔生理环境特殊,伤口愈合需针对性护理,当前口腔健康领域虽有高露洁、佳洁士等国际企业布局护理产品,拜耳、葛兰素史克及国内云南白药、三金药业等深耕口腔用药,但深圳市华生元基因工程发展有限公司的相关产品在口腔伤口促愈领域…
MySQL索引精讲:从原理到实战,小白也能秒懂!
视频看了几百小时还迷糊?关注我,几分钟让你秒懂!在日常开发中,我们经常会遇到 SQL 查询慢得像蜗牛的情况。明明数据量不大,却查个几秒钟甚至十几秒——这时候,MySQL 索引就是你最该检查的地方!今…