🎉 新增加密解密工具

dev
smallchill 6 years ago
parent 32f1d6864e
commit 441fdadcef
  1. 22
      src/util/crypto.js

@ -1,19 +1,19 @@
import CryptoJS from 'crypto-js' import CryptoJS from 'crypto-js'
export default class crypto { export default class crypto {
//使用AesUtil.genAesKey()生成,需和后端配置保持一致 // 使用AesUtil.genAesKey()生成,需和后端配置保持一致
static aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm"; static aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm";
//使用DesUtil.genDesKey()生成,需和后端配置保持一致 // 使用DesUtil.genDesKey()生成,需和后端配置保持一致
static desKey = "jMVCBsFGDQr1USHo"; static desKey = "jMVCBsFGDQr1USHo";
/** /**
* aes 加密方法同javaAesUtil.encryptToBase64(text, aesKey); * aes 加密方法同javaAesUtil.encryptToBase64(text, aesKey);
*/ */
static encryptAES(data, key) { static encryptAES(data, key) {
let dataBytes = CryptoJS.enc.Utf8.parse(data); const dataBytes = CryptoJS.enc.Utf8.parse(data);
let keyBytes = CryptoJS.enc.Utf8.parse(key); const keyBytes = CryptoJS.enc.Utf8.parse(key);
let encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, { const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, {
iv: keyBytes, iv: keyBytes,
mode: CryptoJS.mode.CBC, mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7 padding: CryptoJS.pad.Pkcs7
@ -25,8 +25,8 @@ export default class crypto {
* aes 解密方法同javaAesUtil.decryptFormBase64ToString(encrypt, aesKey); * aes 解密方法同javaAesUtil.decryptFormBase64ToString(encrypt, aesKey);
*/ */
static decryptAES(data, key) { static decryptAES(data, key) {
let keyBytes = CryptoJS.enc.Utf8.parse(key); const keyBytes = CryptoJS.enc.Utf8.parse(key);
let decrypted = CryptoJS.AES.decrypt(data, keyBytes, { const decrypted = CryptoJS.AES.decrypt(data, keyBytes, {
iv: keyBytes, iv: keyBytes,
mode: CryptoJS.mode.CBC, mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7 padding: CryptoJS.pad.Pkcs7
@ -38,8 +38,8 @@ export default class crypto {
* des 加密方法同javaDesUtil.encryptToBase64(text, desKey) * des 加密方法同javaDesUtil.encryptToBase64(text, desKey)
*/ */
static encryptDES(data, key) { static encryptDES(data, key) {
let keyHex = CryptoJS.enc.Utf8.parse(key); const keyHex = CryptoJS.enc.Utf8.parse(key);
let encrypted = CryptoJS.DES.encrypt(data, keyHex, { const encrypted = CryptoJS.DES.encrypt(data, keyHex, {
mode: CryptoJS.mode.ECB, mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7 padding: CryptoJS.pad.Pkcs7
}); });
@ -50,8 +50,8 @@ export default class crypto {
* des 解密方法同javaDesUtil.decryptFormBase64(encryptBase64, desKey); * des 解密方法同javaDesUtil.decryptFormBase64(encryptBase64, desKey);
*/ */
static decryptDES(data, key) { static decryptDES(data, key) {
let keyHex = CryptoJS.enc.Utf8.parse(key); const keyHex = CryptoJS.enc.Utf8.parse(key);
let decrypted = CryptoJS.DES.decrypt({ const decrypted = CryptoJS.DES.decrypt({
ciphertext: CryptoJS.enc.Base64.parse(data) ciphertext: CryptoJS.enc.Base64.parse(data)
}, keyHex, { }, keyHex, {
mode: CryptoJS.mode.ECB, mode: CryptoJS.mode.ECB,

Loading…
Cancel
Save