前端使用RSA(jsencrypt.js)加密数据传递到后端解密失败
前端使用RSA加密数据传递到后端解密失败前言: 做项目的时候,需要给三方app提供一个H5的登录页,要求前端对重要的数据进行RSA加密前端使用的是vue框架,所以直接使用了jsencrypt.js//1.安装jsencryptnpm i jsencrypt//2.在main.js文件中引入import JsEncrypt from 'jsencrypt'//3.新建一个名为jseUtil.js的文
·
前端使用RSA加密数据传递到后端解密失败
失败原因: 前端RSA加密后的Base64位的密文,在后端接收到时,字符"+"被转为了空格,导致无法解密成功
解决: 后端解密之前先做一次字符替换,将空格转回"+",再进行解密
- 前端使用的是vue框架,所以直接使用了jsencrypt.js
//1.安装jsencrypt
npm i jsencrypt
//2.在main.js文件中引入
import JsEncrypt from 'jsencrypt'
//3.新建一个名为jseUtil.js的文件
const publicKey = "";//后端提供的公钥
function encrypt (str) {
let en = new JSEncrypt();
en.setPublicKey(publicKey);
return en.encrypt(str)
}
export default {encrypt}
//4.在需要用到的vue组件中引入
import jseUtil from '@/common/js/jseUtil'
//5.对数据进行加密
let encryptIdCardNo = jseUtil.encrypt(this.idCardNo)
- 后端使用的是java通用的RSA加密方式
String decryIdCardNo = RSAEncrypt.decrypt(idCardNo.replace( " " , "+" ));
更多推荐
已为社区贡献2条内容
所有评论(0)