同步最新bladex私服的Saber,并且集成好了工作流插件
包含表单设计器
https://git.nutflow.vip/blade-workflow/Saber
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.1 KiB
81 lines
2.1 KiB
|
3 years ago
|
import CryptoJS from 'crypto-js'
|
||
|
|
|
||
|
|
export default class crypto {
|
||
|
|
// 使用AesUtil.genAesKey()生成,需和后端配置保持一致
|
||
|
|
static aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm";
|
||
|
|
|
||
|
|
// 使用DesUtil.genDesKey()生成,需和后端配置保持一致
|
||
|
|
static desKey = "jMVCBsFGDQr1USHo";
|
||
|
|
|
||
|
|
/**
|
||
|
|
* aes 加密方法
|
||
|
|
* @param data
|
||
|
|
* @returns {*}
|
||
|
|
*/
|
||
|
|
static encrypt (data) {
|
||
|
|
return this.encryptAES(data, this.aesKey);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* aes 解密方法
|
||
|
|
* @param data
|
||
|
|
* @returns {*}
|
||
|
|
*/
|
||
|
|
static decrypt (data) {
|
||
|
|
return this.decryptAES(data, this.aesKey);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* aes 加密方法,同java:AesUtil.encryptToBase64(text, aesKey);
|
||
|
|
*/
|
||
|
|
static encryptAES (data, key) {
|
||
|
|
const dataBytes = CryptoJS.enc.Utf8.parse(data);
|
||
|
|
const keyBytes = CryptoJS.enc.Utf8.parse(key);
|
||
|
|
const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, {
|
||
|
|
iv: keyBytes,
|
||
|
|
mode: CryptoJS.mode.CBC,
|
||
|
|
padding: CryptoJS.pad.Pkcs7
|
||
|
|
});
|
||
|
|
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* aes 解密方法,同java:AesUtil.decryptFormBase64ToString(encrypt, aesKey);
|
||
|
|
*/
|
||
|
|
static decryptAES (data, key) {
|
||
|
|
const keyBytes = CryptoJS.enc.Utf8.parse(key);
|
||
|
|
const decrypted = CryptoJS.AES.decrypt(data, keyBytes, {
|
||
|
|
iv: keyBytes,
|
||
|
|
mode: CryptoJS.mode.CBC,
|
||
|
|
padding: CryptoJS.pad.Pkcs7
|
||
|
|
});
|
||
|
|
return CryptoJS.enc.Utf8.stringify(decrypted);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* des 加密方法,同java:DesUtil.encryptToBase64(text, desKey)
|
||
|
|
*/
|
||
|
|
static encryptDES (data, key) {
|
||
|
|
const keyHex = CryptoJS.enc.Utf8.parse(key);
|
||
|
|
const encrypted = CryptoJS.DES.encrypt(data, keyHex, {
|
||
|
|
mode: CryptoJS.mode.ECB,
|
||
|
|
padding: CryptoJS.pad.Pkcs7
|
||
|
|
});
|
||
|
|
return encrypted.toString();
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* des 解密方法,同java:DesUtil.decryptFormBase64(encryptBase64, desKey);
|
||
|
|
*/
|
||
|
|
static decryptDES (data, key) {
|
||
|
|
const keyHex = CryptoJS.enc.Utf8.parse(key);
|
||
|
|
const decrypted = CryptoJS.DES.decrypt({
|
||
|
|
ciphertext: CryptoJS.enc.Base64.parse(data)
|
||
|
|
}, keyHex, {
|
||
|
|
mode: CryptoJS.mode.ECB,
|
||
|
|
padding: CryptoJS.pad.Pkcs7
|
||
|
|
});
|
||
|
|
return decrypted.toString(CryptoJS.enc.Utf8);
|
||
|
|
}
|
||
|
|
}
|