| | |
| | | import CryptoJS from 'crypto-js'; |
| | | import CryptoJS from 'crypto-js' |
| | | |
| | | export default class crypto { |
| | | /** |
| | | * token加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static cryptoKey = '请配置cryptoKey'; |
| | | /** |
| | | * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static aesKey = '请配置aesKey'; |
| | | /** |
| | | * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static desKey = '请配置desKey'; |
| | | /** |
| | | * token加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static cryptoKey = '请配置cryptoKey' |
| | | /** |
| | | * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static aesKey = '请配置aesKey' |
| | | /** |
| | | * 报文加密key 使用@org.springblade.test.CryptoKeyGenerator获取,需和后端配置保持一致 |
| | | * @type {string} |
| | | */ |
| | | static desKey = '请配置desKey' |
| | | |
| | | /** |
| | | * aes 加密方法 |
| | | * @param data |
| | | * @returns {*} |
| | | */ |
| | | static encrypt(data) { |
| | | return this.encryptAES(data, this.aesKey); |
| | | } |
| | | /** |
| | | * 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 解密方法 |
| | | * @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.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); |
| | | } |
| | | /** |
| | | * 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.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); |
| | | } |
| | | /** |
| | | * 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) |
| | | } |
| | | } |