@perfylee/crypto
Version:
encryption module used in project
69 lines (68 loc) • 2.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.base64 = exports.tripleDES = exports.md5 = void 0;
var crypto_js_1 = __importDefault(require("crypto-js"));
/**
* MD5加密
* @param input 原文
* @returns 字母小写
*/
var md5 = function (input) {
return crypto_js_1.default.MD5(input).toString().toLowerCase();
};
exports.md5 = md5;
/**
* TripleDES加解密
*/
exports.tripleDES = {
/**
* 加密
* @param input 原文
* @param key 密钥(长度24的字符串的base64编码)
* @returns 字母小写
*/
encrypt: function (input, key) {
var encrypted = crypto_js_1.default.TripleDES.encrypt(input, crypto_js_1.default.enc.Base64.parse(key), {
mode: crypto_js_1.default.mode.ECB,
padding: crypto_js_1.default.pad.Pkcs7
}).toString();
return crypto_js_1.default.enc.Base64.parse(encrypted).toString().toLowerCase();
},
/**
* 解密
* @param input 密文
* @param key 密钥(长度24的字符串的base64编码)
* @returns
*/
decrypt: function (input, key) {
var decrypted = crypto_js_1.default.TripleDES.decrypt(crypto_js_1.default.enc.Base64.stringify(crypto_js_1.default.enc.Hex.parse(input)), crypto_js_1.default.enc.Base64.parse(key), {
mode: crypto_js_1.default.mode.ECB,
padding: crypto_js_1.default.pad.Pkcs7,
});
return decrypted.toString(crypto_js_1.default.enc.Utf8);
}
};
/**
* Base64
*/
exports.base64 = {
/**
* 编码
* @param input 原文
* @returns 字母小写
*/
parse: function (input) {
return crypto_js_1.default.enc.Base64.stringify(crypto_js_1.default.enc.Utf8.parse(input));
},
/**
* 解码
* @param input Base64密文
* @returns
*/
stringify: function (input) {
return crypto_js_1.default.enc.Base64.parse(input).toString(crypto_js_1.default.enc.Utf8);
}
};