jiami.js 2.07 KB
// 文本加密
import { sm4 } from "sm-crypto";
const DEFAULT_KEY = "cda4442f102f6396eea76902e37ad7cb";
const DEFAULT_IV = "8bd8a83221742111c7532b7275a7fe9c";
export const encrypt = (str) => {
  if (!str) {
    return "";
  }
  const encryptStr = sm4.encrypt(str, DEFAULT_KEY, {
    iv: DEFAULT_IV,
    mode: "cbc",
    padding: "pkcs#7",
  });
  return encryptStr;
};

// 文本解密
export const decrypt = (str) => {
  if (!str) {
    return "";
  }
  //     if(str.indexOf('ENC(') === -1) {
  //         return str
  //     }
  //     const str_ = str.replace('ENC(', '').replace(')', '')
  try {
    const decryptStr = sm4.decrypt(str, DEFAULT_KEY, {
      iv: DEFAULT_IV,
      mode: "cbc",
      padding: "pkcs#7",
    });
    return decryptStr;
  } catch (error) {
    return "解密失败!";
  }
};
// 批量加密
export const decryptall = (obj, isjmlist) => {
  let list = [];
  let objnew = {};
  for (let key in obj) {
    let item = {
      typeis: "2", //是否加密 1加密 2不加密
      keyname: key, //变量名
      value: obj[key], //值
    };
    if (isjmlist.length > 0) {
      // let found = isjmlist.find(function(element) {
      //     return key == element;
      // });
      console.log(isjmlist.indexOf(key) != -1);
      if (isjmlist.indexOf(key) != -1) {
        item.typeis = "1";
      }
    } else {
      item.typeis = "1";
    }

    list.push(item);
  }

  list.forEach((element) => {
    if (element.typeis == "1" && element.value) {
      console.error(element);
      element.value = encrypt(element.value);
    }
    objnew[element.keyname] = element.value;
  });

  return objnew;
};
// 批量解密
export const encryptall = (list, isjmlist) => {
  let newlist = list.map((element) => {
    let c1 = Object.keys(element);
    c1.forEach((key) => {
      if (isjmlist.length > 0) {
        console.log(isjmlist.indexOf(key) != -1);
        if (isjmlist.indexOf(key) != -1) {
          element[key] = decrypt(element[key]);
        }
      } else {
        element[key] = decrypt(element[key]);
      }
    });
    return element;
  });

  return newlist;
};