前端账号密码-RSA非对称加密

一、RSA介绍
   RSA是一种非对称加密算法,是由一对密钥来进行加解密的过程,分别称为公钥和私钥。我项目里采用公钥加密,使用私钥解密。

加密过程:

(1)后端JAVA生成一对密钥(公钥和私钥),私钥不公开,后端保留。
(2)登录前先调接口,拿到后端给的公钥,前端用公钥对消息进行加密后传给后端。
(3)后端接收到前端加密的消息,利用他自己的私钥对消息进行解密。

   在这个过程中,只有2次传递过程,第一次是后端传递公钥给前端,第二次是前端传递加密消息给后端,即使都被截获,也没有危险性,因为只有后端的私钥才能对消息进行解密,防止了消息内容的泄露。与之前使用的crypto加解密相比,密钥和偏移量都在前端存储,这种不对称公私钥的方式更安全。
原文链接:https://blog.csdn.net/weixin_45259626/article/details/107169325

二、过程

 1. 安装依赖

npm install jsencrypt 

2. 引入

import { JSEncrypt } from 'jsencrypt';

3. 加密

//rsa加密
export function rasEncrypt(key, data) {
  // 新建JSEncrypt对象
  let encryptor = new JSEncrypt();
  // 设置公钥
  encryptor.setPublicKey(key); // key为公钥
  // 加密数据
  return encryptor.encrypt(data); //data就是需要加密的密码
}

4. 解密

// ras解密
export function rasDecrypt(privateKey, data) {
   // 新建JSEncrypt对象
   let decrypt= new JSEncrypt();
   // 设置私钥
   decrypt.setPrivateKey(privateKey);
   // 解密数据
   decrypt.decrypt(data);
}

猜你喜欢

转载自blog.csdn.net/weixin_65969505/article/details/132410925