Crypto
加密解密
crypto
模块提供了加密功能,包含对
OpenSSL
的哈希、
HMAC
、加密、解密、签名、以及验证功能的⼀整套封装。我们这
⾥讲
crypto AES
算法加密
⼀、使⽤步骤
1.
引⼊
Crypto
1.1
使⽤
Crypto
,有两种形式。⼀种是是在
script
便签直接引⼊,例如:
<script src=
"lib/CryptoJS v3.1.2/rollups/aes.js"
></script>
1.2
还有⼀种通过
npm
安装
CryptoJS
,例如:
npm install crypto-js
1.2.1
如果是通过
npm
安装,需要引⼊,代码如下:
import CryptoJS
from
'crypto-js/crypto-js'
2.
开始编写逻辑代码
安装完成后,你根据⾃⼰的需求对需要加密的数据进⾏加密。
⼆、如何加密
第⼀种,先上代码:
//aes
加密
encrypt (word) {
const
key = CryptoJS.enc.Utf8.parse(
"1234567890000000"
);
//
加密秘钥
16
位
const
iv = CryptoJS.enc.Utf8.parse(
"1234567890000000"
);
//
加密⽮量
let encrypted =
''
;
if
(
typeof
(word) ==
'string'
) {
let srcs = CryptoJS.enc.Utf8.parse(word);
encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
}
else
if
(
typeof
(word) ==
'object'
) {
//
对象格式的转成
json
字符串
data = JSON.stringify(word);
let srcs = CryptoJS.enc.Utf8.parse(data);
encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
}
return
encrypted.ciphertext.toString();
}
},
代码讲解
:
这⾥的数据可以⽤两种数据格式,⼀种是字符串,⼀种是对象。然后我们对数据进⾏处理然后再根据⾃⼰定义的秘钥和⽮量调⽤
aes
算法
进⾏加密。
第⼆种,先上代码
:
encryption (data) {
let strs=[];
for
(let i
in
data){
strs.push(i+
'='
+data[i]);
}
strs.sort();
//
数组排序
strs=strs.join(
'&'
);
//
数组变字符串
let endData=strs+
'&sign='
+CryptoJS.MD5(strs+
'ADfj3kcadc2349akvm1CPFFCD84f'
)
.toString();
// MD5
加密
let key = CryptoJS.enc.Utf8.parse(
"0880076B18D7EE81"
);
//
加密秘钥
let iv = CryptoJS.enc.Utf8.parse(
"CB3EC842D7C69578"
);
//
⽮量
let encryptResult = CryptoJS.AES.encrypt(endData,key, {
// AES
加密
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
//
后台⽤的是
pad.Pkcs5,
前台对应为
Pkcs7
});