前端rsa加密的简单应用,jsencrypt的使用

我使用的是jsencrypt插件,用于rsa加密。
在我们项目中使用时,密钥是通过接口,后台返回我的,然后通过rsa加密,再发给后台,后台进行解密

1、下载jsencrypt

npm i jsencryp

2、导入jsencrypt

import JSEncrypt from "jsencrypt"

3、获取密钥,进行加密

我这里,通过接口获取的一个对象,含有3个key

  • publicKey
  • privateKey
  • dataKey

获取到密钥之后,在向后台提交时,就要使用公钥publicKey对需要的内容进行加密
私钥privateKey,是后台解密需要,这里返回的就是空字符串
我这里返回的有dataKey,后台解密所需要

// this.Keys,存储的就是通过接口获取到的密钥对象
// 公钥publicKey加密
encrypt(str){
  let result = ""
  let encrypt = new JSEncrypt()
  encrypt.setPublicKey(this.Keys.publicKey)
  result = encrypt.encrypt(str)
  return result
}

// 如果前端需要用到私钥privateKey
decrypt(str){
  let result = ""
  let decrypt = new JSEncrypt() 
  decrypt.setPrivateKey(this.Keys.privateKey) 
  result = decrypt.decrypt(str) 
  return result
}

// 再向后台提交时,还需要加上datakey
{
  account: "******",
  password: this.encrypt("******"),
  suffix: this.Key.dataKey
}

如果前端不通过接口获取密钥的,可以前往 在线生成非对称加密公钥私钥对 去生成密钥对儿,复制保存下来(比如保存到config中),需要的时候调用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值