最近在做一个vue2项目,项目过程中用到了RSA加密,随之拿出来分享一下
npm: npm install --save jsencrypt
main.js
import JsEncrypt from 'jsencrypt'
//RSA encrypt
Vue.prototype.$jsEncrypt = JsEncrypt;
复制代码
因为过程中用了mixins,随之拿来封装一下:
export default {
name:'RSA-encrypt',
methods:{
//加密方法
RSAencrypt(pas){
//实例化jsEncrypt对象
let jse = new this.$jsEncrypt;
//设置公钥
jse.setPublicKey('-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDU/hbv04Efj5lDd6cTJFLuaHWXszy8kmnO0skAPeWp5CqgnNdzgUjD9sc6BLUWyb+NWLxO559z2bhhb2rWLDZ9MWMdX32w3FGiG3/2FAYubNBlNLv9pXPluj6QOj9TYWtMeb/RtCbDyNXFx0zeSV3vPyZ3kH7lJEIgERvie8bMWwIDAQAB-----END PUBLIC KEY-----');
//解密
return jse.encrypt(pas);
},
//解密方法
RSAdecrypt(pas){
let jse = new this.$jsEncrypt;
jse.setPrivateKey('-----BEGIN PRIVATE KEY-----MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANT+Fu/TgR+PmUN3pxMkUu5odZezPLySac7SyQA95ankKqCc13OBSMP2xzoEtRbJv41YvE7nn3PZuGFvatYsNn0xYx1ffbDcUaIbf/YUBi5s0GU0u/2lc+W6PpA6P1Nha0x5v9G0JsPI1cXHTN5JXe8/JneQfuUkQiARG+J7xsxbAgMBAAECgYEAzS38sImiQOIXdbvlMfZzAYGVjk62+r1cukWqJdZ60J+hRNnyXy2zCDxJjaWNQWeWZLaPqL9Ohs685PftBmbPESalWdIjADijM0HKDFS6GKEYd3CcyJPRT1joRDMnyr7GhxpngcvKTHcsxwqZdlBCjjrOe+zL9yMl3mXSKytMHEliLoTnM6F1t2WOuPk+qcc8LCVB1LV/vhVPg98tg==-----END PRIVATE KEY-----')
return jse.decrypt(pas);
}
}
}
复制代码
一般来说前端只需要存放公钥,用来加密传输就行了,私钥留着给后台解密;
生成公钥私钥的方法在jsencrypt的githut上github.com/travist/jse…
还算是比较简单的。