vue rsa解密,vue rsa前端加密

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: