123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- /*
- * @Description: 字符转换为指定字符
- * @Autor: kindring
- * @Date: 2022-01-17 11:30:36
- * @LastEditors: kindring
- * @LastEditTime: 2022-02-17 15:38:05
- * @LastDescript:
- */
- const crypto = require('crypto');
- // let CryptoJS = require("crypto-js")
- var MCrypt = require('mcrypt').MCrypt;
- let CryptoJS = require('./crypto-js')
- // console.log(CryptoJS);
- /**
- * 字符串计算md5
- * @param {*} str
- * @returns
- */
- function md5(str) {
- const hash = crypto.createHash('md5');
- // 可任意多次调用update(),效果相当于多个字符串相加
- hash.update(str);
- return hash.digest('hex');
- }
- /**
- * 数值3des加密
- * @param {string} key
- * @param {string} str
- */
- function des3(key, str) {
- //key不足24位自动以0(最小位数是0)补齐,如果多余24位,则截取前24位,后面多余则舍弃掉
- let base64Key = CryptoJS.enc.Utf8.parse(key);
- //加密使用的是3DES中的ECB,解密对应的使用ECB
- let encrypt = CryptoJS.TripleDES.encrypt(str, base64Key, {
- iv: CryptoJS.enc.Utf8.parse('0123456789'), //iv偏移量
- // mode: CryptoJS.mode.CBC, //CBC模式
- mode: CryptoJS.mode.ECB, //ECB模式
- // padding: CryptoJS.pad.Pkcs7 //padding处理
- });
- // console.log(encrypt);
- console.log(encrypt.toString());
- return encrypt.toString();
- }
- function pkcs5_pad(text, blocksize) {
- console.log(blocksize);
- let pad = blocksize - (text.length % blocksize);
- return `${text}${str_repeat(pad, pad)}`;
- }
- function str_pad(str, target, fillStr) {
- while (str.length < target) {
- str += fillStr
- }
- return str;
- }
- function str_repeat(str, n) {
- return new Array(n).fill(str).join('');
- }
- module.exports = {
- md5: md5,
- des3: des3
- }
|