vue 中的AES加密和RSA加密

AES加密方式:

步骤: 

1.在src/utils文件夹中新建crypto.js文件,并在文件中写入下面代码:

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();
  },
};

2.在需要的文件中引入 crypto.js,并使用

import Crypto from '@/utils/crypto.js';

// 加密
const username = Crypto.encrypt(this.loginForm.username, this.secretKey.secretKey, this.secretKey.iv)
// 解密
const password= Crypto.decrypt(this.loginForm.password, this.secretKey.secretKey, this.secretKey.iv)

一般密码的加密都是使用RSA进行非对称加密

步骤:

1. npm install jsencrypt

2.在需要加密的文件中引入并使用

import Cryptopt from 'jsencrypt';

// publicKey 是公钥
const publicKey ='MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AM...';
const encrypt = new Cryptopt();
encrypt.setPublicKey(publicKey);
const encryptPassword = encrypt.encrypt(this.loginForm.password);
posted @ 2020-11-19 18:23  棠樾  阅读(896)  评论(0编辑  收藏  举报