vue中使用js进行AES加密及解密(含密钥和iv偏移量)、以及HMAC-SHA256加密方法对于签名加密的使用

一、AES加密解密

1.下载安装

npm install crypto-js --save-dev

2.在utils文件夹下创建encryp.js文件进行aes加密解密工具类方法的封装

import CryptoJS from 'crypto-js';

export default {
  // 解密  data:要加密解密的数据,AES_KEY:密钥,IV:偏移量
  decrypt(data, AES_KEY, IV) {
    const key = CryptoJS.enc.Utf8.parse(AES_KEY);
    const iv = CryptoJS.enc.Utf8.parse(IV);
    const decrypt = CryptoJS.AES.decrypt(data, key, {
      iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    }).toString(CryptoJS.enc.Utf8);
    return decrypt;
  },
  // 加密
  encrypt(data, AES_KEY, IV) {
    const key = CryptoJS.enc.Utf8.parse(AES_KEY);
    const iv = CryptoJS.enc.Utf8.parse(IV);
    const encrypted = CryptoJS.AES.encrypt(data, key, {
      iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    });
    return encrypted.toString();
  },
};

3.在vue中引用

import Crypto from "@/utils/encryp.js";

4.在js部分使用示例

var aseStr = {
        name: "张三 ",
        idNumber: "123456123456781234",
        phoneNumber: "12345678910",
        merchantId: "46bf791a432242c253365b623a4b45c5",
      }; //加密前json
      var key = "e4ea89835ad64eb1b8d76069e33908d4"; //加密密钥
      var iv = "ff465fdecc764337"; //加密aesIV,偏移量
      var time = Date.parse(new Date()).toString().substring(0, 10); //十位时间戳,精度是秒
      // 加密
      const newStr = Crypto.encrypt(JSON.stringify(aseStr), key, iv);   //将json转成字符串再进行加密
      console.log('加密后字符串',newStr);
      // 解密
      const oldStr = Crypto.decrypt(newStr, key, iv);
      console.log('解密后字符串',oldStr);

4.打印结果

二、 HMAC-SHA256加密

1.下载安装

npm install crypto-js --save-dev

2.在vue中引用

import CryptoJS from "crypto-js";

3.在js方法中使用示例

      let id = '46bf791a432242c253365b623a4b45c5'
      let key = "e4ea89835ad64eb1b8d76069e33908d4"; //加密密钥
      let time = Date.parse(new Date()).toString().substring(0, 10); //十位时间戳,精度是秒
      let str = id + time + key;
      let test = CryptoJS.HmacSHA256(str, key);
      let testStr = CryptoJS.enc.Hex.stringify(test);
      console.log('原字符串',str)
      console.log('签名加密后字符串',testStr)

4.运行结果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值