news 2026/4/13 0:40: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/10 5:26:08

瑞维美尼:全球首款menin抑制剂,以靶向创新改写难治性白血病格局

在急性白血病的治疗版图中,携带KMT2A基因重排或NPM1突变的亚型长期处于“化疗耐药、复发率高、生存期短”的困境。传统化疗对这类患者的缓解率不足30%,中位生存期仅3-4个月,无数患者在反复治疗与复发中陷入绝境。直到瑞维美尼(Rev…

作者头像 李华
网站建设 2026/4/2 11:21:58

大模型RAG架构演进详解:从Naive到Agentic的四代技术突破与应用实践

本文系统梳理了检索增强生成(RAG)架构的演进历程,详细对比了Naive RAG、Advanced RAG、Modular RAG和Agentic RAG四代架构的核心特点与技术突破。从基础三步流程发展到模块化设计和智能体协同,RAG技术通过创新解决了知识更新、语义…

作者头像 李华
网站建设 2026/4/7 23:26:25

口腔伤口可以用什么药物促进愈合

口腔生理环境特殊,伤口愈合需针对性护理,当前口腔健康领域虽有高露洁、佳洁士等国际企业布局护理产品,拜耳、葛兰素史克及国内云南白药、三金药业等深耕口腔用药,但深圳市华生元基因工程发展有限公司的相关产品在口腔伤口促愈领域…

作者头像 李华
网站建设 2026/4/10 15:11:27

MySQL索引精讲:从原理到实战,小白也能秒懂!

视频看了几百小时还迷糊?关注我,几分钟让你秒懂!在日常开发中,我们经常会遇到 SQL 查询慢得像蜗牛的情况。明明数据量不大,却查个几秒钟甚至十几秒——这时候,MySQL 索引就是你最该检查的地方!今…

作者头像 李华