使用较多的有两种辅助插件
1 2 | 方法一: jsencrypt.js(RSA) 方法二:crypto.js (AES) |
jsencrypt封装工具类方法
AES
1 2 3 4 5 | 1.对称加密:即加密和解密使用同一个密钥。 2.加密速度快 3.适合数据比较长时的使用 4.密钥长度:密钥最长只有256个bit 5.密钥管理:要求在通信前对密钥进行秘密分配,解密的私钥必须通过网络传送至加密数据接收方; |
RSA
1 2 3 4 5 | 1.非对称加密:即有两个密钥,加密用公钥,解密用私钥(其中公钥可以公开) 2.加密速度慢 3.不适合大量数据文件加密 4.私钥长度:有512bit,1024bit,2048bit,4096bit,长度越长,越安全 5.密钥管理:加解密过程中不必网络传输保密的密钥;密钥管理优于AES算法; |
AES+RSA:
使用AES对称密码体制对传输数据加密,同时使用RSA不对称密码体制来传送AES的密钥,就可以综合发挥AES和RSA的优点同时
避免它们缺点来实现一种新的数据加密方案
1 2 3 4 5 6 | 流程: 接收方创建RSA秘钥对, 发送RSA公钥给发送方,自己保留RSA私钥 发送方创建AES密钥,加密待传送的明文,之后用RSA公钥加密该密钥, RSA公钥加密AES的密钥+AES密钥加密明文的密文----通过Internet发给---->接收方 接收方用RSA私钥解密加密的密钥,之后再用解密后的AES密钥解密数据密文,得到明文。 |
创建RSA加密工具类方法(jsencrypt)
第一步:
1 2 | ## 命令行 npm install jsencrypt --save |
第二步:
在src文件夹中创建jsencrypt.js

第三步:jsencrypt.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | /***** * RSA加密解密工具类 * **/ import { JSEncrypt } from 'jsencrypt' // 导入 // 公钥 const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' + '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ==' // 私钥 const privateKey = '' // 加密 export function encrypt (txt) { const encryptor = new JSEncrypt() encryptor.setPublicKey(publicKey) // 设置公钥 return encryptor.encrypt(txt) // 对需要加密的数据进行加密 } // 解密 export function decrypt (txt) { const encryptor = new JSEncrypt() encryptor.setPrivateKey(privateKey) return encryptor.decrypt(txt) } |
使用方法
1.在要使用的地方导入
1 | import {encrypt} from '../utils/jsencrypt' |
如下:

2.函数中使用
1 2 3 4 5 6 7 | methods: { rr: function () { var userId = sessionStorage.getItem('userId') console.log('加密前:' + userId) let tt = encrypt(userId) console.log('加密后:' + tt) }, |
