const n = function (t, n) { var d = e.enc.Utf8.parse(e.MD5(r)), p = e.enc.Utf8.parse(n) return e.AES.decrypt(t, d, { iv: p, mode: e.mode.CBC, padding: e.pad.ZeroPadding }).toString(e.enc.Utf8) }
const t = function (t, n) { var d = e.enc.Utf8.parse(e.MD5(r)), p = e.enc.Utf8.parse(n) return e.AES.encrypt(t, d, { iv: p, mode: e.mode.CBC, padding: e.pad.ZeroPadding }).toString() }
var encrypt = function(pass, message) { var salt = Crypto.lib.WordArray.random(saltSize / 8); var key = Crypto.PBKDF2(pass, salt, {keySize: keySize / 32, iterations: iterations}); var iv = Crypto.lib.WordArray.random(ivSize / 8); var encrypted = Crypto.AES.encrypt(message, key, { iv: iv, padding: Crypto.pad.Pkcs7, mode: Crypto.mode.CBC }); var encryptedHex = base64ToHex(encrypted.toString()); var base64result = hexToBase64(salt + iv + encryptedHex); return base64result; }
var decrypt = function(pass, message) { var hexResult = base64ToHex(message) var salt = Crypto.enc.Hex.parse(hexResult.substr(0, 64)); var iv = Crypto.enc.Hex.parse(hexResult.substr(64, 32)); var encrypted = hexToBase64(hexResult.substring(96)); var key = Crypto.PBKDF2(pass, salt, { keySize: keySize / 32, iterations: iterations }); var decrypted = Crypto.AES.decrypt(encrypted, key, { iv: iv, padding: Crypto.pad.Pkcs7, mode: Crypto.mode.CBC }) return decrypted.toString(Crypto.enc.Utf8); }
const encryptationData = (data, key) => { const encryptedMessage = {}; const uid = create16Uiid(); const iv = encryptionBase64(uid); const code = CryptoJS.AES.encrypt(data, CryptoJS.MD5(key), { iv: CryptoJS.enc.Utf8.parse(uid), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }); encryptedMessage.uid = uid; encryptedMessage.iv = iv; encryptedMessage.data = code.ciphertext.toString(CryptoJS.enc.Base64); return encryptedMessage; }
constructor(token, encodingAesKey, corpIdOrSuiteKey) { this.utf8 = 'utf-8'; this.base64 = 'base64'; this.AES_ENCODE_KEY_LENGTH = 43; this.RANDOM_LENGTH = 16; this.token = token; this.encodingAesKey = encodingAesKey; // decode encodingAesKey to aesKey, then convert to binary this.aesKey = (new Buffer.from(encodingAesKey + '=', 'base64')).toString('binary'); this.corpId = corpIdOrSuiteKey; this.keySpec = CryptoJS.enc.Latin1.parse(this.aesKey); this.iv = CryptoJS.enc.Latin1.parse(this.aesKey.substr(0, 16)); this.options = { iv: this.iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.NoPadding, }; }
const decryptionData = (data, key, iv) => { const iv64 = decryptionBase64(iv); const code = CryptoJS.AES.decrypt(data, CryptoJS.MD5(key), { iv: CryptoJS.enc.Utf8.parse(iv64), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }); return code.toString(CryptoJS.enc.Utf8); }