今天做了Vue项目的加密,主要做了登录接口,保证登录的安全性能。
网上关于 AES
对称加密的算法介绍挺多的,对这一块还不是特别理解的小伙伴可自行百度,这里我推荐一篇AES加密算法的详细介绍与实现,讲的还是蛮详细的~
要用 AES
算法加密,首先我们要引入 crypto-js
,crypto-js
是一个纯 javascript
写的加密算法类库 ,可以非常方便地在 javascript
进行 MD5
、SHA1
、SHA2
、SHA3
、RIPEMD-160
哈希散列,进行 AES
、DES
、Rabbit
、RC4
、Triple DES
加解密,我们可以采用 npm install crypto-js --save
进行下载安装,也可以直接去 GitHub下载源码~
其实搞懂了是怎么一回事,做起来还是挺简单的,因为库都是现成的,我们只需要会用就好啦,这里我在推荐一篇理解AES加密解密的使用方法,加深大家对 AES
算法的理解~
我的项目中具体的步骤如下:
1、 在package.json里面添加"crypto-js": "^^3.1.9-1"
2、npm install 下载crypto-js
3、引入 import CryptoJS from 'crypto-js'
4、定义两个方法 ,分别是用于加密和解密,这里我将它放在了 utils 文件夹下
import CryptoJS from 'crypto-js'
/**
* 加密(需要先加载lib/aes/aes.min.js文件)
*/
export const encrypt = (word) => {
var key = CryptoJS.enc.Utf8.parse("46cc793c53dc451b");
var srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
/**
* 解密
*/
export const decrypt = (word) => {
var key = CryptoJS.enc.Utf8.parse("46cc793c53dc451b");
var decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}