vue rsa解密,vue rsa前端加密
本文主要介绍了如何在Vue项目中实现rsa加密,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。
目录
如何实现rsa加密和安装jsencrypt,介绍jsencrypt获取公钥(接口),介绍getPubKey使用rsa加密、解密、签名和解签名,安装js加密和解密,签名和测试。
如何实现rsa加密
介绍
客户端初始化登录服务时,需要以账号和密码为参数请求后台接口。这时后台响应会显示详细的账号和密码。为了提高安全性,一般需要对响应中的密码进行加密。本文主要总结了rsa加密方法。
安装jsencrypt
npm i jsencrypt
引入jsencrypt
将jsencrypt引入main.js文件。
从“JSEncrypt”导入JSEncrypt;//简介模块
vue . prototype . $ js encrypt=js encrypt;//配置全局变量
获取公钥(调接口)
导出函数getPubKey(data) {
返回http({
Url: /index/pub-key ,//每个项目的接口Url都不一样,可以根据实际情况进行修改。
方法:“GET”,//相同的原则
数据
});
}
引入getPubKey
在需要加密的组件中引入getPubKey接口,然后加密账号或密码。以下是登录页面帐户和密码加密的示例。
1.将getPubKey引入login.vue文件。
从“@/api”导入{ get pubkey };//每个项目路径都是不同的
2.登录时加密
Getpubkey()。然后({result,data:key data })={//get pubkey-获取公钥接口。
如果(结果){
const jse=new this。$ jsEncrypt();//实例化jsEncrypt对象
jse . setpublickey(key data);//配置公钥
设user account=jse . encrypt(this . loginform . user);//加密账号
设passWord=jse . encrypt(this . loginform . passWord);//加密密码
登录({
userAccount:用户帐户,
密码:密码,
}).然后(({结果,消息})={
如果(结果){
Console.log(登录成功);
//成功登录后的操作
}否则{
//登录失败。
this.loginTextError=message
}
});
}
});
使用rsa加密,解密,加签,解签
vue中使用RSA加密、解密、签名检查和安装,安装中使用js加密、解密、签名检查和签名检查。
安装
一个用于加密和解密:npm安装jsencrypt - save。如果加密太长,请使用npm i encryptlong - save。另一个用于签名验证:npm install jsrsasign - save。
引js
/*引入jsencrypt实现数据的RSA加密/
处理长文本数据时,从“js encrypt”//Error js encrypt . js message导入加密对RSA来说太长
/encryptlong用于实现数据的RSA加密*/
import encrypt from encrypt long //encrypt long是一个基于jsencrypt扩展的长文本分段加密解密功能。
加密解密
/* JSEncrypt加密/
rsaPublicData(data) {
var jsencrypt=new JSEncrypt()
jsencrypt . setpublickey(public key)
//如果是对象/数组,需要先把JSON.stringify转换成字符串。
var result=js encrypt . encrypt(data)
回送结果
},
/JSEncrypt解密*/
rsaPrivateData(数据){
var jsencrypt=new JSEncrypt()
jsencrypt . setprivatekey(privateKey)
//如果是对象/数组,需要先把JSON.stringify转换成字符串。
var result=js encrypt . encrypt(data)
回送结果
},
/*加密加密*/
函数getEncrypt(data) {
let Encrypt=new Encrypt();
Encrypt.setPublicKey("您的公钥");
let info=encrypt . encrypt long(JSON . stringify(data))
退货信息
}
/*加密解密*/
函数getDecrypt(data) {
let decrypt=new Encrypt();
Decrypt.setPrivateKey("您的私钥");
let info=decrypt . decrypt long(data)
退货信息
}
加签,验签
main.js中介绍的
从“JSR sign”导入JSR sign
安装在main.js中
vue . prototype . $ get sign=function(sign data){
var prik=-开始私钥-你的私钥-结束私钥;
//创建一个rsa实例
var rsa=new jsrsasign。RSA key();
//因为后端提供的是pck#8突击步枪的密钥对,所以这里使用KEYUTIL.getKey来解析密钥
rsa=jsrsasign .关键实用工具。获取密钥(prik);
//RSA。read private keyfrompestrin(prik);
让sig=新jsrsasign .库尔。密码。签名(" alg ":sha 256 with RSA ");
//初始化
初始化先生(rsa)
//传入待加密字符串
更新字符串先生(签名)
//生成密文
让sign=jsrsaasign。十六进制tob 64(符号先生());
//对加密后内容进行尤里!上呼吸道感染编码
//符号=编码器元件(签名):
console.log(登入):
}
查看。原型。$ getsigncode=function(string)>
//创建rsakey(罗马尼亚语)对象
var rsa=新的jsrsasign .rsake();
//因为后端提供的是pck#8突击步枪的秘钥对,所以这里使用KEYUTIL.getKey来解析秘钥
var sign私钥=`-开始私钥-
你的公钥
-结束私密金钥-
//将密钥转码,其实就是将头部尾部默认字符串去掉
signprivatekey=jsrsasign .KEYUTIL.getKey(signPrivateKey):
//创建签个名对象,设置签名编码算法
//alg:对应的是规则需要和后端统一
var sig=new jsrsasign .kjur。地穴。签名。{ {同上。} }
"什么?"SHA256withRSA,
"证明":crypt OJ/jsrsa,
“prkeypem”:签名私钥
});
//初始化
初始化先生(私人密钥)
//传入待加密字符串
更新字符串先生(字符串);
//生成密文
var sign=jsrsaasign。十六进制tob 64(符号先生());
console.log(登入)
//对加密后内容进行尤里!上呼吸道感染编码
//符号=编码器元件(签名):
//把参数与密文拼接好,返回
var params= str= string sign= sign;
返回标志;
}
测试
//参数请求(请求)
var req={}:
req[设备类型]= 00 ;
req[设备ip ]= 192。168 .3 .23 ;
//JSON.stringify(req)转成JSON!JSON!JSON!数据字符串
console.log(JSON.stringify(req))
var r=this .$ getsigncode(JSON。stringify(req));
var e=this .$证明代码(JSON。stringify(req),r):
控制台。日志(e);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。