parent
fd7b378950
commit
32f1d6864e
2 changed files with 63 additions and 0 deletions
@ -0,0 +1,62 @@ |
|||||||
|
import CryptoJS from 'crypto-js' |
||||||
|
|
||||||
|
export default class crypto { |
||||||
|
//使用AesUtil.genAesKey()生成,需和后端配置保持一致
|
||||||
|
static aesKey = "O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm"; |
||||||
|
|
||||||
|
//使用DesUtil.genDesKey()生成,需和后端配置保持一致
|
||||||
|
static desKey = "jMVCBsFGDQr1USHo"; |
||||||
|
|
||||||
|
/** |
||||||
|
* aes 加密方法,同java:AesUtil.encryptToBase64(text, aesKey); |
||||||
|
*/ |
||||||
|
static encryptAES(data, key) { |
||||||
|
let dataBytes = CryptoJS.enc.Utf8.parse(data); |
||||||
|
let keyBytes = CryptoJS.enc.Utf8.parse(key); |
||||||
|
let 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) { |
||||||
|
let keyBytes = CryptoJS.enc.Utf8.parse(key); |
||||||
|
let 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) { |
||||||
|
let keyHex = CryptoJS.enc.Utf8.parse(key); |
||||||
|
let 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) { |
||||||
|
let keyHex = CryptoJS.enc.Utf8.parse(key); |
||||||
|
let 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); |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue