vue——RSA加密封装成工具类(jsencrypt)

    技术2022-08-01  62

    使用较多的有两种辅助插件
    方法一: jsencrypt.js(RSA) 方法二:crypto.js (AES)

    jsencrypt封装工具类方法

    AES
    1.对称加密:即加密和解密使用同一个密钥。 2.加密速度快 3.适合数据比较长时的使用 4.密钥长度:密钥最长只有256个bit 5.密钥管理:要求在通信前对密钥进行秘密分配,解密的私钥必须通过网络传送至加密数据接收方;
    RSA
    1.非对称加密:即有两个密钥,加密用公钥,解密用私钥(其中公钥可以公开) 2.加密速度慢 3.不适合大量数据文件加密 4.私钥长度:有512bit,1024bit,2048bit,4096bit,长度越长,越安全 5.密钥管理:加解密过程中不必网络传输保密的密钥;密钥管理优于AES算法;
    AES+RSA:

    使用AES对称密码体制对传输数据加密,同时使用RSA不对称密码体制来传送AES的密钥,就可以综合发挥AES和RSA的优点同时 避免它们缺点来实现一种新的数据加密方案

    流程: 接收方创建RSA秘钥对, 发送RSA公钥给发送方,自己保留RSA私钥 发送方创建AES密钥,加密待传送的明文,之后用RSA公钥加密该密钥, RSA公钥加密AES的密钥+AES密钥加密明文的密文----通过Internet发给---->接收方 接收方用RSA私钥解密加密的密钥,之后再用解密后的AES密钥解密数据密文,得到明文。

    创建RSA加密工具类方法(jsencrypt)

    第一步:
    ## 命令行 npm install jsencrypt --save
    第二步:

    在src文件夹中创建jsencrypt.js

    第三步:jsencrypt.js
    /***** * 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.在要使用的地方导入
    import {encrypt} from '../utils/jsencrypt'
    如下:

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

    Processed: 0.011, SQL: 10