vue

153 阅读2分钟

公钥加密

发送者用加密密钥进行加密,接收者用解密密钥进行解密。加密密钥是公开的,任何人都可以获取,因此加密密钥又称为公钥。解密密钥不能公开,只能自己使用,隐藏它又成为私钥。常见的公钥加密算法有RSA。

前端获取后台给的公钥(或者写死一个)对许哟加密的账号密码进行加密,后端用私钥对加密的字段进行解密

作用:

1、加密(保证数据安全性)

使用公钥加密,需使用私钥解密

这种广泛营养在保证数据的安全性的方面,用户将自己的公钥广播出去,所有人在给用户数据时使用该公钥加密,但是只有该用户使用自己的私钥解密,保证了数据的安全性

2、认证(用于身份判断)

使用私钥签名,需使用公钥验证签名

用户同样将自己的公钥广播出去,给别人发送数据时,使用私钥加密,在这里,我们更乐意称它为签名,然后别人用公钥验证签名,如果解密成功,则可以判断对方的身份

公钥与私钥使用场景:
(1)私钥用来进行解密和签名,是给自己用的。
(2)公钥由本人公开,用于加密和验证签名,是给别人用的。
(3)当该用户发送文件时,用私钥签名,别人用他给的公钥验证签名,可以保证该信息是由他发送的。当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。

安装:
npm install jsencrypt
npm install encryptlong     公钥太长解密不了所以药安装 这个东西

使用:
const {JSEncrypt} = require('encryptlong')let RSA = {    //使用公钥加密    jiami(str,pubKey) {        let encrypt = new JSEncrypt();        encrypt.setPublicKey(pubKey);        let encrypted = encrypt.encryptLong(str);        return encrypted    },    jiemi(str) {        //使用私钥解密        let decrypt = new JSEncrypt();        decrypt.setPrivateKey(priKey);        let uncrypted = decrypt.decrypt(str);        return uncrypted;    }}export default RSA;