台州市网站建设_网站建设公司_小程序网站_seo优化
2026/1/16 15:52:04 网站建设 项目流程
先在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); } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询