前端 AES 加密 解密


import CryptoJS from "crypto-js";
import api from 'common/api'

// var keys=[]
// function queryAESParam() {
//   return new Promise((resolve,reject)=>{
//     api.ref.queryRefDetail({
//       refDetailCode: 'SystemRelationAESParam'
//     },(msg)=>{
//       if(msg.data.message == 'success'){
//           let data  = msg.data.obj
//           resolve([{ Key1 : data.refDetailValue,
//             iv1 : data.refDetailRemark}])
//       }
//     })
//   })
// } 

// async function query(){
//   keys = await queryAESParam();
//   console.log(keys)
// }
// query()
// console.log(keys);
// sit
const key = CryptoJS.enc.Utf8.parse("1234567890qwer66"); //16位
const iv = CryptoJS.enc.Utf8.parse("123hjkl123456000");
// uat 生产
// const key = CryptoJS.enc.Utf8.parse("991iris765ahsyan"); //16位
// const iv = CryptoJS.enc.Utf8.parse("8528563iris11ayf");

// AES加密
export function Encrypt(word,keyStr,ivStr){
      let srcs, encrypted;
      srcs= CryptoJS.enc.Utf8.parse(word);
      encrypted= CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
    return encrypted.ciphertext.toString(); //返回密文
  }


/**
 * 解密方法
 * @param data
 * @returns {string}
 */
export function decrypt(data) {
  const encryptedHexStr = CryptoJS.enc.Hex.parse(data);
  const str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  const decrypt = CryptoJS.AES.decrypt(str, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  });
  const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  return decryptedStr.toString();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值