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