UNPKG

@perfylee/crypto

Version:

encryption module used in project

69 lines (68 loc) 2.19 kB
"use strict"; 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); } };