先在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); } }鸿蒙中加密库使用
张小明
前端开发工程师
小白必学!RAG与向量数据库完全指南,5分钟掌握大模型核心技术
文章介绍了RAG(检索增强生成)是一种结合检索与生成的大语言模型应用架构,其检索部分通常通过向量数据库实现。向量数据库用于存储和高效搜索高维向量表示,将文本转换为向量进行相似度检索。RAG通过预处理文档为向量存入数据库&…
【Day32】Tomcat 服务器:安装、配置与 Web 应用部署
本文收录于「Java 学习日记:从入门到架构师」专栏,聚焦 Java Web 核心基础,从 Tomcat 实操入手,帮你打通 “写代码 - 部署运行” 的最后一公里~ 一、为什么要学 Tomcat? 在上一篇 HTTP 协议的学习中&…
转行大模型领域:30+程序员的明智之选,收藏这份学习资料包,想转行大模型,还来得及吗?
文章论述了转行到大模型领域的可行性和优势,特别强调了30程序员的技术积累、跨领域知识和抗压能力等优势。提供了转行AI大模型的具体步骤和学习路径,包括初阶应用、高阶应用、模型训练和商业闭环四个阶段。大模型领域人才需求大,薪资高&#…
AI智能体规划模式教程(超详细)从零基础到实战应用,一篇全掌握,建议收藏!
规划模式(Planning Pattern)是智能体从工具执行迈向理性决策的关键设计模式,通过目标理解、任务分解、步骤排序和执行调整四个阶段,使AI具备"先思考再行动"的能力。该模式结合Tree-of-Thought思维实现多步推理,建立PEOR闭环循环&am…
重磅!谷歌推出全新TranslateGemma翻译模型系列
1 月 16 日,Google 正式推出了全新开放翻译模型系列 TranslateGemma。该系列基于 Gemma 3 架构开发,提供 4B、12B 和 27B 三种参数规模。Google 表示,TranslateGemma 的推出标志着开放翻译技术的又一重大进展,旨在打破语言障碍&am…
学习黑客了解5分钟了解中间人攻击(MITM)
5分钟了解中间人攻击(MITM)🕵️♂️ 什么是中间人攻击(Man-in-the-Middle, MITM)? 中间人攻击是一种网络攻击方式,攻击者悄无声息地“夹在”通信两端之间,偷偷读取、篡改、伪造或…