news 2026/4/23 18:43:02

鸿蒙中加密库使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙中加密库使用
先在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); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 16:06:28

小白必学!RAG与向量数据库完全指南,5分钟掌握大模型核心技术

文章介绍了RAG(检索增强生成)是一种结合检索与生成的大语言模型应用架构,其检索部分通常通过向量数据库实现。向量数据库用于存储和高效搜索高维向量表示,将文本转换为向量进行相似度检索。RAG通过预处理文档为向量存入数据库&…

作者头像 李华
网站建设 2026/4/22 17:35:28

【Day32】Tomcat 服务器:安装、配置与 Web 应用部署

本文收录于「Java 学习日记:从入门到架构师」专栏,聚焦 Java Web 核心基础,从 Tomcat 实操入手,帮你打通 “写代码 - 部署运行” 的最后一公里~ 一、为什么要学 Tomcat? 在上一篇 HTTP 协议的学习中&…

作者头像 李华
网站建设 2026/4/23 14:44:00

转行大模型领域:30+程序员的明智之选,收藏这份学习资料包,想转行大模型,还来得及吗?

文章论述了转行到大模型领域的可行性和优势,特别强调了30程序员的技术积累、跨领域知识和抗压能力等优势。提供了转行AI大模型的具体步骤和学习路径,包括初阶应用、高阶应用、模型训练和商业闭环四个阶段。大模型领域人才需求大,薪资高&#…

作者头像 李华
网站建设 2026/4/23 13:14:12

重磅!谷歌推出全新TranslateGemma翻译模型系列

1 月 16 日,Google 正式推出了全新开放翻译模型系列 TranslateGemma。该系列基于 Gemma 3 架构开发,提供 4B、12B 和 27B 三种参数规模。Google 表示,TranslateGemma 的推出标志着开放翻译技术的又一重大进展,旨在打破语言障碍&am…

作者头像 李华
网站建设 2026/4/23 14:34:13

学习黑客了解5分钟了解中间人攻击(MITM)

5分钟了解中间人攻击(MITM)🕵️‍♂️ 什么是中间人攻击(Man-in-the-Middle, MITM)? 中间人攻击是一种网络攻击方式,攻击者悄无声息地“夹在”通信两端之间,偷偷读取、篡改、伪造或…

作者头像 李华