Vue 2中的RSA加密

5,107 阅读1分钟

最近在做一个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…

还算是比较简单的。