UNPKG

@mamba-le/auth

Version:
114 lines (100 loc) 3.26 kB
/** * @description 认证模块 * @version 0.3.7 * @author lengyingxin <lengyingxin8966@gmail.com> (https://github.com/LengYXin) */ import _delay from 'lodash/delay'; import _join from 'lodash/join'; import _toLower from 'lodash/toLower'; import _includes from 'lodash/includes'; import _some from 'lodash/some'; import CryptoAes from 'crypto-js/aes'; import CryptoBase64 from 'crypto-js/enc-base64'; import CryptoHex from 'crypto-js/enc-hex'; import CryptoUtf8 from 'crypto-js/enc-utf8'; import CryptoCfb from 'crypto-js/mode-cfb'; import CryptoPkcs7 from 'crypto-js/pad-pkcs7'; import dayjs from 'dayjs'; var day = dayjs().format('YYYY-MM-DD'); var AuthEncryption = /** @class */ function () { function AuthEncryption() {} /** * 加密 * @static * @param {string} message * @return {*} * @memberof Encryption */ AuthEncryption.AES_Encrypt = function (message) { try { var srcs = CryptoUtf8.parse(message); var encrypted = CryptoAes.encrypt(srcs, AuthEncryption.AES_Config.AES_Key, { iv: AuthEncryption.AES_Config.AES_IV, mode: CryptoCfb, padding: CryptoPkcs7 }); return encrypted.ciphertext.toString().toUpperCase(); } catch (error) { console.error('LENG ~ Encryption ~ AES_Encrypt ~ error', error); return ''; } }; /** * 解密 * @static * @param {string} message * @return {*} * @memberof Encryption */ AuthEncryption.AES_Decrypt = function (message) { try { var encryptedHexStr = CryptoHex.parse(message); var srcs = CryptoBase64.stringify(encryptedHexStr); var decrypt = CryptoAes.decrypt(srcs, AuthEncryption.AES_Config.AES_Key, { iv: AuthEncryption.AES_Config.AES_IV, mode: CryptoCfb, padding: CryptoPkcs7 }); var decryptedStr = decrypt.toString(CryptoUtf8); return decryptedStr.toString(); } catch (error) { console.error('LENG ~ Encryption ~ AES_Decrypt ~ error', error); return ''; } }; /** @type AES_Key 秘钥 当前日期 */ AuthEncryption.AES_Config = { AES_Key: CryptoUtf8.parse('day'), AES_IV: CryptoHex.parse('day'), set: function set(SystemInfo) { var keys = []; // 小程序的 webview 中 if (_some(['MiniProgramEnv', 'miniProgram'], function (agent) { return _includes(_toLower(SystemInfo.userAgent), _toLower(agent)); })) { // const system = lodash.join( // [SystemInfo.os.name, SystemInfo.os.version], // ' ', // ); // const version = lodash.join( // lodash.take(lodash.split(SystemInfo.browser.version, '.'), 3), // '.', // ); keys = [day]; //lodash.concat(keys, [version]); } else if (SystemInfo.system) { // 小程序中 keys = [day]; //lodash.concat(keys, [SystemInfo.version]); } var keyStr = _join(keys, ' '); AuthEncryption.AES_Config.AES_Key = CryptoUtf8.parse(keyStr); AuthEncryption.AES_Config.AES_IV = CryptoHex.parse(keyStr); _delay(function () { return console.log('Encryption', SystemInfo, keyStr); }, 1000); } }; return AuthEncryption; }(); export { AuthEncryption }; //# sourceMappingURL=encryption.js.map