RSA加密算法是一种非对称加密算法,RSA加密使用了一对密钥(公钥和私钥)
在线生成密钥生成工具
使用的加密库为
npm i jsencrypt
RSA加密与解密
- 使用公钥加密的数据,利用私钥进行解密
- 使用私钥加密的数据,利用公钥进行解密
-
/** * 加密工具类 * Created by wangxiaoying 2019/04/17 * **/ import JsEncrypt from 'jsencrypt' import store from '../store' /** * 加密 * @param value 待加密数据 * @returns 加密结果 */ export function RSAencrypt(value) { var encrypt = new JsEncrypt() // 如果公钥没有了,重新申请公钥 if (store.getters.publicKey && store.getters.publicKey === '') { store.dispatch('GetConfig').then(() => { encrypt.setPublicKey(store.getters.publicKey)// 从store中读取公钥 var enRes = encrypt.encrypt(value) console.log('加密结果为:' + enRes) return enRes }).catch((e) => { this.loading = false }) } else { encrypt.setPublicKey(store.getters.publicKey)// 从store中读取公钥 var enRes = encrypt.encrypt(value) console.log('加密结果为:' + enRes) return enRes } } /** * 解密 * @param value 待解密数据 * @returns 加密结果 */ export function RSAdecrypt(value){ var encrypt = new JsEncrypt() if (store.getters.privateKey && store.getters.privateKey === '') { store.dispatch('GetConfig').then(() => { encrypt.setPrivateKey(store.getters.privateKey)// 从store中读取私钥 var enRes = encrypt.decrypt(value) console.log('解密结果为:' + enRes) return enRes }).catch((e) => { this.loading = false }) } else { encrypt.setPrivateKey(store.getters.privateKey)// 从store中读取私钥 var enRes = encrypt.decrypt(value) console.log('解密结果为:' + enRes) return enRes } }