1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import CryptoJS from 'crypto-js'
- export default class crypto {
- // 使用AesUtil.genAesKey()生成,需和后端配置保持一致
- static aesKey = "uQFw4pOEtPdzU4LP3ywbaUtoGMHywnUi";
- // 使用DesUtil.genDesKey()生成,需和后端配置保持一致
- static desKey = "XHHUNdnCka60Y5zJ";
- /**
- * 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);
- }
- }
|