当前位置: 首页 > news >正文

CryptoJS hex模式前端

CryptoJS

加密:

aesJson (str, secretKey, aesIv, padding) {let keylet ivkey = CryptoJS.enc.Utf8.parse(secretKey)iv = CryptoJS.enc.Utf8.parse(aesIv)let plaintText = str // CryptoJS.enc.Utf8.parse(str) 明文stringlet encrypted = CryptoJS.AES.encrypt(plaintText, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: padding && CryptoJS.pad.Pkcs7})let data2if (padding) {data2 = encrypted.ciphertext.toString()} else {data2 = encrypted.toString() // 加密后的数据}return data2
}

加密注意:hex 模式生成密文只去加密后ciphertext里面的数据,转json

解密:

function decrypt (data, secretKey, aesIv, padding) {// key,iv:16位的字符串let encryptedBase64Strif (padding) {// Hex 模式解密encryptedBase64Str = {ciphertext:  CryptoJS.enc.Hex.parse(data) }} else {encryptedBase64Str = data}let keylet ivkey = CryptoJS.enc.Utf8.parse(secretKey)iv = CryptoJS.enc.Utf8.parse(aesIv)// console.log(data, encryptedBase64Str)let decrypted = CryptoJS.AES.decrypt(encryptedBase64Str, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: padding && CryptoJS.pad.Pkcs7})// return JSON.parse(decrypted.toString(padding ? CryptoJS.enc.Hex : CryptoJS.enc.Utf8))return JSON.parse(decrypted.toString(CryptoJS.enc.Utf8))
}

注意:解密需对密文先进行hex转译,然后使用放在对象ciphertext中

坑:

Malformed UTF-8 data(报错)解密时没有,对密文先进行hex转译,然后使用放在对象ciphertext中


http://www.mrgr.cn/news/2950.html

相关文章:

  • 系统架构设计师——系统运行与维护
  • RCE与SQL漏洞的复现
  • 嵌入式AI快速入门课程-K510篇 (第四篇 AI概念及理论知识)
  • PowerShell 一键配置IP
  • C语言 数据存储
  • vue3之仪表盘
  • sqlalchemy RowProxy
  • libLZMA库iOS18平台编译
  • 《重生到现代之从零开始的C语言生活》—— 指针2
  • 【JavaScript 】JavaScript 全教程 02
  • python从列表中选出最后4个元素
  • 【Leetcode:93. 复原 IP 地址 + dfs】
  • 帆软报表,达梦数据库驱动上传失败
  • 自然语言处理NLP四范式
  • ArrayList与顺序表
  • ADB使用报错的问题FileNotfoundError:[WinError 3]系统找不到指定的路径
  • 跟李沐学AI:目标检测的常用算法
  • 怎么在网络攻击中屹立不倒
  • 自闭症学校一年学费多少?
  • 网络协议(概念版)