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

757 阅读1分钟

我使用的是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中),需要的时候调用