import JSEncrypt from 'jsencrypt'; import CryptoJS from 'crypto-js'; export function createKey() { for (var e = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"], t = "", n = 0; n < 16; n++) { t += e[Math.ceil(61 * Math.random())] } return t } export function AESEncypt(data, encryptKey) { if(!encryptKey) { encryptKey = createKey() } var encrypted = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(encryptKey), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return { data: encrypted.ciphertext.toString(CryptoJS.enc.Base64), encryptKey: encryptKey }; }; export function AESDecrypt(data64, encryptKey){ var ciphertext = CryptoJS.enc.Base64.parse(data64); var decrypted = CryptoJS.AES.decrypt({ ciphertext: ciphertext }, CryptoJS.enc.Utf8.parse(encryptKey), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }); return CryptoJS.enc.Utf8.stringify(decrypted).toString(); }; export function RSAEncrypt(data) { var publicRASEncryptKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjPrYs9it54O8ERC8g7tgTkueSaZ7tjy1Ki0giLHtyw/kUdajjOTnvncWMgnrpV96k3Miqwb70qwr+ew/+NpUDsxY0eBcmeOFzzq+zhh4l3fbUOOYgcK+BxtgptRXfZQeZohQPO/tZwr3oh2KO7dt3dkG1HERS5/SEUKhLg6LylwIDAQAB-----END PUBLIC KEY-----'; const jsencrypt = new JSEncrypt(); jsencrypt.setPublicKey(publicRASEncryptKey); return jsencrypt.encrypt(data); }; export function RSADecrypt(data) { var publicRASEncryptKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjPrYs9it54O8ERC8g7tgTkueSaZ7tjy1Ki0giLHtyw/kUdajjOTnvncWMgnrpV96k3Miqwb70qwr+ew/+NpUDsxY0eBcmeOFzzq+zhh4l3fbUOOYgcK+BxtgptRXfZQeZohQPO/tZwr3oh2KO7dt3dkG1HERS5/SEUKhLg6LylwIDAQAB-----END PUBLIC KEY-----'; const jsencrypt = new JSEncrypt(); jsencrypt.setPublicKey(publicRASEncryptKey); return jsencrypt.decrypt(data); }