1. 程式人生 > 實用技巧 >vue 中的AES加密和RSA加密

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