引言
高级加密标准(AES, Advanced Encryption Standard),是一种最常见的对称加密算法 。其加密流程如下图所示,发送方通过密钥对明文加密后进行网络传输,接收方用同样的密钥将密文解密。在前后端通讯场景中,可利用AES算法对用户密码进行加密后传输,防止被抓包而造成密码泄露。
为了完成加解密操作,双方需要事先约定好: 秘钥长度,密钥,IV值,加密模式,填充方式共计5项内容。下面以128位密钥长度、CBC加密模式、零填充为例进行实战介绍,更多AES加密算法的细节读者可自行查阅。
前端 JS加解密
前端要实现AES加密,需要安装CryptoJS。 CryptoJS是一个JavaScript的加解密的工具包。它支持多种算法:MD5、SHA1、SHA2、SHA3、RIPEMD-160
的哈希散列,以及进行 AES、DES、Rabbit、RC4、Triple DES
加解密。
npm install --save crypto-js
新建secret.js,将相关操作封装成函数,代码如下:
// 引用AES源码js
const CryptoJS = require(‘crypto-js’);
// 128位的密钥与IV,与后端约定好
let crypt_key = ‘OS7kWn9kGLmr7wxD’;
let crypt_iv &#