本文主要是介绍CryptoJS 加密算法类库AES(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
AES 加解密介绍
AES 加密语法
AES 解密语法
案例1:文本加解密
案例2:对象加解密
- AES 加解密都需要使用 toString() 方法把它们转换成字符串,解密时需要把字符串编译成 Utf8 编码格式
- 对象、数组加密原始数据需要转换成 JSON 字符串,使用 JSON.stringify()
- 对象、数组解密后的数据需要使用 JSON.parse() 解析
AES 加解密介绍
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加解密用相同的密钥,具体加密流程如下图:
- 明文P:
- 没有经过加密的数据
- 密文C:
- 经加密函数处理后的数据
- 密钥K:
- 用来加密明文密码,在对称加密算法中,加解密密钥相同
- 密钥是接收方与发送方协商产生,不可以直接在网络上传输,否则会导致密钥泄漏
- 密钥通过非对称加密算法加密密钥,再通过网络传输给对方,或者直接面对面商量密钥
- 密钥绝对不可以泄漏,否则会被攻击者还原密文,窃取机密数据
- 对称加密算法:
- 加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦
- 非对称加密算法:
- 加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal
AES 加密语法
CryptoJS.AES.encrypt('待加密字符串', '密钥').toString()
AES 解密语法
CryptoJS.AES.decrypt('待解密字符串', '密钥').toString(CryptoJS.enc.Utf8)
案例1:文本加解密
- 加密
- ciphertext 密文:经加密函数处理后的数据
const ciphertext = CryptoJS.AES.encrypt('my message', 'secret key').toString()
- 解密
- plaintext 明文:没有经过加密的数据
const plaintext = CryptoJS.AES.decrypt(ciphertext, 'secret key').toString(CryptoJS.enc.Utf8)
案例2:对象加解密
- 原始数据
const arr = [{id: 1}, {id: 2}]
const strArr = JSON.stringify(arr)
- 加密
const ciphertext = CryptoJS.AES.encrypt(strArr, 'secret key').toString()
- 解密
const plaintext = CryptoJS.AES.decrypt(ciphertext, 'secret key').toString(CryptoJS.enc.Utf8)
const plaintextArr = JSON.parse(plaintext)
参考资料:
AES加密算法的详细介绍与实现_TimeShatter的博客-CSDN博客_aes加密AES简介高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图: 下面简单介绍下各个部分的作用与意义:明文P 没有经过加密的数据。密钥K 用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生https://blog.csdn.net/qq_28205153/article/details/55798628
理解AES加密解密的使用方法_技术改变生活-CSDN博客_aes用法很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难。本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法。最后给出例子来帮助理解AES加密解密的使用方法。https://blog.csdn.net/vieri_32/article/details/48345023
这篇关于CryptoJS 加密算法类库AES(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!