@mamba-le/auth
Version:
114 lines (100 loc) • 3.26 kB
JavaScript
/**
* @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