# vue使用crypto-js实现加密解密
# 安装
yarn add crypto-js -save
# or
npm install crypto-js -save
1
2
3
2
3
# 封装加密工具函数cryptojs.js
/**
* @Author DuebassLei
* @Date 2020/11/5
* @Version 1.0
* @Description CryptoJS封装工具
*/
import CryptoJS from 'crypto-js';
export default {
/**
* 对密码进行加密
* @param {String} word 需要加密的密码
* @param {String} keyStr 对密码加密的秘钥
* @return {String} 加密的密文
* */
encrypt(word, keyStr) { // 加密
keyStr = keyStr ? keyStr : 'QWERTY123456';
let key = CryptoJS.enc.Utf8.parse(keyStr);
let srcs = CryptoJS.enc.Utf8.parse(word);
let encrypted = CryptoJS.AES.encrypt(srcs, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
},
/**
* 对密码进行解密
* @param {String} word 需要加密的密码
* @param {String} keyStr 对密码加密的秘钥
* @return {String} 解密的明文
* */
decrypt(word, keyStr) { // 解密
keyStr = keyStr ? keyStr : 'QWERTY123456';
let key = CryptoJS.enc.Utf8.parse(keyStr);
let decrypt = CryptoJS.AES.decrypt(word, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return CryptoJS.enc.Utf8.stringify(decrypt).toString();
},
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 在组件中使用
# 引入
import CyptoJs from '@/utils/cyptojs'
# 加密
const keyStr = 'ASDFG123456'
CyptoJs.encrypt(this.password,keyStr)
# 解密
const keyStr = 'ASDFG123456'
CyptoJs.decrypt(this.password,keyStr)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10