news 2026/3/28 9:28:58

鸿蒙中加密库使用

作者头像

张小明

前端开发工程师

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/3/26 9:54:33

大模型时代,程序员如何从焦虑到掌控:一人打造完整产品的实践

文章分享了作者在大模型时代的实践与思考,通过两个AI编程项目展示大模型如何帮助个人高效开发。作者指出AI发展速度惊人,一个人就能完成团队工作,未来可能是产品经理的时代。面对AI带来的挑战,普通人应培养使用大模型的习惯&#…

作者头像 李华
网站建设 2026/3/27 6:08:40

2026年AI胜负手:MAS多智能体协作系统,程序员必学的新一代AI技术

文章指出2026年将成为多智能体协作系统(MAS)的元年,科技巨头如马斯克、OpenAI、Google、微软和英伟达纷纷布局。资本市场已有沃尔玛、美国运通等企业成功案例,MAS驱动业绩大幅提升。文章强调2025年AI主要降本,而2026年MAS将帮助客户实现大规模…

作者头像 李华
网站建设 2026/3/27 6:26:47

【论文自动阅读】SemanticGen: Video Generation in Semantic Space

快速了解部分 基础信息(英文): 1.题目: SemanticGen: Video Generation in Semantic Space 2.时间: 2025.12 3.机构: Zhejiang University, Kuaishou Technology (Kling Team), CUHK, DLUT, HUST 4.3个英文关键词: Video Generation, Semanti…

作者头像 李华
网站建设 2026/3/27 11:30:21

基于STM32的智能家居安防系统设计

第2章 总体设计方案 2.1基于STM32的家居安防系统设计 2.1.1系统功能需求 (1)温湿度检测功能 家居环境温湿度是直接影响居住环境舒适度的一个重要因素,冬天人体适宜温湿度为:温度18℃25℃,湿度30%80%;夏天人体适宜温湿度…

作者头像 李华
网站建设 2026/3/28 3:35:32

基于stm32的四旋翼无人机的设计——飞行控制系统软件设计

2 四旋翼无人机设计总体思路 确定无人机基本需求,主要包括无人机的功能、性能、成本、功耗、尺寸和重量等。确定这些之后,就可以针对这些需求进行硬件模块的选择以及软件的初步构思。 对无人机进行系统设计,把实际问题转变为工程问题&#xf…

作者头像 李华