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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM