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