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);
故不积跬步,无以至千里;不积小流,无以成江海。