CryptoJS hex模式前端

news/2024/10/18 21:37:25/

CryptoJS

加密:

javascript">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

解密:

javascript">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.ppmy.cn/news/1512494.html

相关文章

使用JDK17的record关键字编译报错踩坑

先看报错 jdk版本是17.应该是支持的啊。第一次使用record关键字就这样了吗。 解决 在设置里面把字节码版本改为17就行,因为以前是运行jdk8的所以会出现这个问题。 设置好了之后编译就通过了。 总结 一般出现编译错误,首先看一下Project Structure 再…

Hadoop入门基础(三):Hadoop启动踩坑记录

一、机器ssh连接方式非默认22端口 报错: sbin/start-dfs.sh Starting namenodes on [doop253] doop253: ssh: connect to host doop253 port 22: Connection refused 解决方法: sudo vim /etc/ssh/ssh_config 添加如下内容(注意替换自己服…

读论文《Temporal Graph Networks for Deep Learning on Dynamic Graphs》

论文地址:[2006.10637] Temporal Graph Networks for Deep Learning on Dynamic Graphs (arxiv.org) 项目地址:GitHub - twitter-research/tgn: TGN: Temporal Graph Networks 作者提出了一种名为Temporal Graph Networks(TGNs)…

Spring项目:文字花园(四)

一.实现登录 传统思路: • 登陆⻚⾯把⽤⼾名密码提交给服务器. • 服务器端验证⽤⼾名密码是否正确, 并返回校验结果给后端 • 如果密码正确, 则在服务器端创建 Session . 通过 Cookie 把 sessionId 返回给浏览器. 问题: 集群环境下⽆法直接使⽤Session. 原因分析: 我们开…

基于Spring Boot的大学校园生活信息平台的设计与实现pf

TOC springboot523基于Spring Boot的大学校园生活信息平台的设计与实现pf 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关…

【图解秒杀系列】秒杀技术点——静态化

【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化FreeMarker、Thymleaf处理流程问题 OpenResty Lualua_shared_dict & lua-resty-template处理流程具体操作 什么是静态化、静态化的作用 静态化就是指通过某种静态化技术,将原本…

第五章:数据库管理

第五章 数据库管理 5.1 数据库管理概述 数据库管理:为保证数据库系统的正常运行和服务质量必须进行的系统管理工作。 5.2 事务管理(5-10分) 5.2.1 事务的概念 **事务概念:**事务是指由构成单个业务处理单元的一组数据库访问操…

Nginx服务优化与防盗链

目录 1. 隐藏版本号 2.修改用户和组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 1. 隐藏版本号 隐藏版本号可以防止有人试图从某某版本的漏洞攻击网站 方法一: 修改配置文件 vim /usr/local/nginx/conf/nginx.conf 在…