当前位置: 首页 > news >正文

AES+RSA 实现混合加密

AES+RSA 实现混合加密

一、混合加密的优势

AES + RSA 的组合是最常见的 混合加密(Hybrid Encryption,在实际项目里尤其常见于 前后端传输敏感数据(如登录、注册、支付)场景。

1、AES(对称加密)快

  • AES 用一个密钥加密解密,速度极快(尤其对大数据)。
  • 缺点:密钥要安全传输给对方,否则就不安全。

2、RSA(非对称加密)安全

  • RSA 用公钥加密、私钥解密。
  • 适合在传输时保证密钥不泄露。
  • 缺点:性能很差,只适合加密少量数据。

3、两者结合(优势)

  • 用 RSA 加密 AES 的密钥(只传一次小数据,性能没问题)。
  • 用 AES 加密大数据正文(保证高效)。
  • 好处:既安全(RSA 保证密钥安全),又高效(AES 保证大数据快速)。

二、一般流程

AES + RSA 混合加密流程

1. 初始化阶段

  • 后端(Spring Boot生成一对 RSA 公钥 / 私钥。
  • 公钥 提供给前端(Vue),私钥 仅自己保存。

2. 加密传输阶段(前端 → 后端)

  1. 前端请求后端的 RSA 公钥。
  2. 前端生成一个随机的 AES 密钥。
  3. 前端用 RSA 公钥加密 AES 密钥。
  4. 前端用 AES 密钥加密业务数据(如登录信息)。
  5. 前端将 {RSA加密的AES密钥, AES加密的业务数据} 一起发送给后端。

3. 解密阶段(后端处理)

  1. 后端用 RSA 私钥解密 AES 密钥。
  2. 后端用 AES 密钥解密业务数据。
  3. 得到原始数据,继续业务逻辑处理(如校验账号密码)。

4. 可选(返回数据加密)

  • 后端要返回敏感数据时,可以同样用 AES 加密后再发给前端。
  • 前端用 AES
http://www.dtcms.com/a/394653.html

相关文章:

  • 命名实体识别技术NER
  • 网络验证 一键加密 一键接入验证 加壳加密数盾加盾
  • JDBC组件
  • StandardScaler,MinMaxScaler等四个内置归一化函数学习
  • pandawiki 无法获取模型列表
  • openEuler2403安装宝塔面板
  • Altium Designer(AD) PCB铺铜
  • 解决Django长时间操作中的MySQL连接超时问题
  • 样本量估计原理与python代码实现
  • 0v0.pro 深度评测、 AI 助手篇、80+模型 free
  • ego(9)---ego-planner中的动力学仿真
  • 2025年9月第3周AI资讯
  • ETL详解:从核心流程到典型应用场景
  • SQL查询基础常用攻略
  • 数据结构二叉树(C语言)
  • Domain、BO、BIZ 三层的协作关系
  • 【从小白到精通之数据库篇】Mysql--连接与子查询
  • C++ 函数详解:从基础到高级应用
  • HTML打包的EXE程序无法关闭?
  • openEuler2403安装Ollama
  • 苍穹外卖项目实战(day11-1)-记录实战教程、问题的解决方法以及完整代码
  • 【Linux命令从入门到精通系列指南】mv 命令详解:文件与目录移动、重命名及安全操作的终极实战手册
  • 【C语言】深入解析阶乘求和算法:从代码实现到数学原理
  • 图形库的基础--svg
  • 令牌桶算法
  • FPGA开发环境配置
  • 特别分享:怎么用coze搭建智能体?
  • Linux 管道
  • NumPy 系列(四):numpy 数组的变形
  • 【Zod 】数据校验新范式:Zod 在 TypeScript 项目中的实战指南