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

前后端数据加密传输【最佳方案】

AES和RSA区别

算法类型安全性密钥长度/输出长度速度应用场景
AES对称加密128位、192位、256位适用于大规模数据加密,入HTTPS协议的数据传输
RSA非对称加密1024位、2048位、4096位较慢适用于数据安全传输、数字签名和身份验证

综上:兼顾安全性和性能,避免RSA处理大量数据的瓶颈,采用下面方式

RSA 送钥匙(AES 密钥)+ AES 锁数据

流程图

+-------------------+          +---------------------+          +-------------------+
|     前端(用户)     |          |      网络传输         |          |     后端(服务器)    |
+-------------------+          +---------------------+          +-------------------+|                               |                               || 1. 生成随机AES密钥            |                               ||------------------------------>|                               ||                               |                               || 2. 用RSA公钥加密AES密钥       |                               ||------------------------------>|                               ||                               |                               || 3. 用AES密钥加密支付数据       |                               ||------------------------------>|                               ||                               |                               || 4. 发送加密后的数据 + 加密的AES密钥 |                               ||----------------------------->|----------------------------->||                               |                               ||                               | 5. 用RSA私钥解密AES密钥        ||                               |<------------------------------||                               |                               ||                               | 6. 用AES密钥解密支付数据        ||                               |<------------------------------||                               |                               ||                               | 7. 处理支付完成                ||                               |                               |
+-------------------+          +---------------------+          +-------------------+

分步解释

1. 前端生成随机AES密钥

  • 用户输入支付信息(如银行卡号)时,前端生成一个随机的AES密钥(对称加密密钥)。

2. 用RSA公钥加密AES密钥

  • 前端用后端提供的 RSA公钥,加密这个AES密钥,得到加密后的AES密钥。

3. 用AES密钥加密支付数据

  • 前端用生成的AES密钥,加密支付数据(如银行卡号),得到加密后的支付数据。

4. 发送加密内容到后端

  • 前端将 加密后的支付数据 和 加密后的AES密钥 一起发送给后端。

5. 后端用RSA私钥解密AES密钥

  • 后端用自己的 RSA私钥 解密收到的加密AES密钥,得到原始的AES密钥。

6. 后端用AES密钥解密支付数据

  • 后端用解密出的AES密钥,解密支付数据,得到明文银行卡号。

7. 处理支付

  • 后端完成支付逻辑(如验证卡号、扣款等)。

关键点

  • RSA 管钥匙(AES密钥)

        RSA 加密速度慢,但适合加密小数据(如短小的AES密钥)。
    
  • AES 管数据

        AES 加密速度快,适合加密大量数据(如长文本、文件)。
    
  • 安全性

        即使黑客截获数据,没有RSA私钥无法解密AES密钥,没有AES密钥也无法解密支付数据。
    
  • 效率

        综合了RSA的安全性和AES的高效性,适合实际应用。
    

一句话总结

前端:(AES密钥 + 支付数据) → RSA加密AES密钥 → AES加密数据 → 发送  
后端:RSA解密AES密钥 → AES解密数据 → 完成支付 ✅

相关文章:

前后端数据加密传输【最佳方案】

AES和RSA区别 算法类型安全性密钥长度/输出长度速度应用场景AES对称加密高128位、192位、256位快适用于大规模数据加密&#xff0c;入HTTPS协议的数据传输RSA非对称加密高1024位、2048位、4096位较慢适用于数据安全传输、数字签名和身份验证 综上&#xff1a;兼顾安全性和性能…...

爬虫案例七Python协程爬取视频

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Python协程爬取视频 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 爬虫案例七协程爬取视频 提示&#xff1a;以下是本篇文章正文…...

算法每日一练 (9)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (9)最小路径和题目描述解题思路解题代码…...

对接RAGflow的API接口报错

对接RAGflow的API接口&#xff0c;报错&#xff1a; {"status":"success","message":"API连接正常","response":{"code":109,"data":false,"message":"Authentication error: API key …...

智慧城市智慧社区项目建设方案

一、项目背景 在全球化进程加速的今天&#xff0c;城市化问题日益凸显&#xff0c;传统的城市管理模式已难以满足现代社会对高效、智能化管理的需求。智慧城市和智慧社区的概念应运而生&#xff0c;其核心目标是通过信息技术手段&#xff0c;提升城市资源的利用效率&#xff0…...

Orale数据文件加错位置,你直接rm引发的故障

数据库可能面临硬件故障、人为错误、恶意攻击、自然灾害等多种潜在风险&#xff0c;那么今天这个故障就是由于业务人员加错数据文件的位置&#xff0c;然后直接从物理层面rm -f了&#xff0c;导致了生产的故障&#xff01; 以下是针对Oracle数据库物理删除数据文件后的快速修复…...

Web网页开发——水果忍者

1.介绍 复刻经典小游戏——水果忍者 2.预览 3.代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…...

51 单片机中断控制寄存器 TCON

在 51 单片机中&#xff0c;中断控制寄存器 TCON&#xff08;Timer/Counter Control Register&#xff0c;定时器 / 计数器控制寄存器&#xff09;主要用于控制定时器 / 计数器的启动、停止以及外部中断的触发方式等。它既可以按字节寻址&#xff0c;也可以按位寻址&#xff0c…...

电脑如何在系统默认的壁纸中切换自己喜欢的

1、声明&#xff1a;该切换壁纸仅支持win10。 当你想去切换系统默认的壁纸&#xff0c;但是不知道该怎么切换&#xff0c;别慌&#xff0c;小亦教你几招帮你快速切换自定义壁纸。 我们平常使用的win10桌面壁纸大部分都是 简单、朴素的壁纸&#xff0c;但如果你想要切换自己喜…...

AcWing 600. 仰视奶牛 单调栈模板题

https://www.acwing.com/problem/content/description/602/ 找x右边第一个大于x的数的位置 const int N 1e5 10,T 20;int n; LL a[N],stk[N],top,r[N];void solve() {cin >> n;for (int i 1;i < n;i ) cin >> a[i];for (int i n;i > 1;i --){while(top…...

使用Galaxy创建生物信息学工作流的步骤详解

李升伟 整理 Galaxy 是一个基于 Web 的生物信息学平台&#xff0c;提供了直观的用户界面和丰富的工具&#xff0c;帮助用户创建和管理生物信息学工作流。以下是使用 Galaxy 创建生物信息学工作流的主要步骤&#xff1a; 1. 访问 Galaxy 平台 打开 Galaxy 的官方网站&#xff…...

OmniDrive(2):环境搭建

文章目录 1. 环境安装1.1 cuda 和cudnn安装1.2 依赖包安装2. 准备数据集及权重2.1 下载nuScenes数据2.2 下载预训练权重3. 模型训练及推理3.1 训练3.2 推理根据OmniDrive 官方的环境配置 Environment Setup python 3.9 ubantu 22.04 cuda 11.7 torch1.13.11. 环境安装 1.1 cu…...

计算机底层知识一——从编程语言到可执行程序

好久没写博客了&#xff0c;近段时间事情比较杂&#xff0c;最近终于有时间回归了。其余代码写久了就会遇到许多奇奇怪怪的问题&#xff0c;这些问题绕不开许多底层知识&#xff0c;比如缺少动态依赖库、idea编译失败等等&#xff0c;虽然通过百度等搜索引擎&#xff0c;亦或是…...

HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践

HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践 引言 在万物互联时代&#xff0c;操作系统对编译技术的需求已从单纯的代码转换演变为跨设备协同、高效资源调度与极致性能优化的综合挑战。华为鸿蒙系统&#xff08;HarmonyOS&#xff09;自主研发的ArkCompiler…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_cycle_modules

声明在 src/core/ngx_module.h ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle);实现在 src/core/ngx_module.c ngx_int_t ngx_cycle_modules(ngx_cycle_t *cycle) {/** create a list of modules to be used for this cycle,* copy static modules to it*/cycle->modul…...

Java多线程与高并发专题——关于CopyOnWrite 容器特点

引入 在 CopyOnWriteArrayList 出现之前&#xff0c;我们已经有了 ArrayList 和 LinkedList 作为 List 的数组和链表的实现&#xff0c;而且也有了线程安全的 Vector 和Collections.synchronizedList() 可以使用。 首先我们来看看Vector是如何实现线程安全的 &#xff0c;还是…...

Wpf-ReactiveUI-Usercontrol与主界面交互

文章目录 Usercontrol与主界面方法一、使用属性绑定UserControl 部分(MyUserControl.xaml.cs)UserControl 视图模型部分(MyUserControlViewModel.cs)主界面部分(MainWindow.xaml)主界面视图模型部分(MainWindowViewModel.cs)方法二、使用消息传递UserControl 视图模型部…...

MySQL中like模糊查询如何优化?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL中like模糊查询如何优化?】面试题。希望对大家有帮助&#xff1b; MySQL中like模糊查询如何优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MySQL 中&#xff0c;LIKE 模糊查询虽然非常常见&#xff0c;…...

用Ruby的Faraday库来进行网络请求抓取数据

在 Ruby 中&#xff0c;Faraday 是一个非常强大的 HTTP 客户端库&#xff0c;它可以用于发送 HTTP 请求并处理响应。你可以使用 Faraday 来抓取网页数据&#xff0c;处理 API 请求等任务。下面我将向你展示如何使用 Faraday 库进行网络请求&#xff0c;抓取数据并处理响应。 1.…...

2025天梯训练1

PTA | L3-1 直捣黄龙 30分 思路&#xff1a;多关键字最短路&#xff0c;同时还要记录最短路径条数。 typedef struct node{int from,d,pass,kl;bool operator<(const node &x)const{if(d!x.d) return d>x.d;if(pass!x.pass) return pass<x.pass;return kl<x.…...

DeepSeek教我写词典爬虫获取单词的音标和拼写

Python在爬虫领域展现出了卓越的功能性&#xff0c;不仅能够高效地抓取目标数据&#xff0c;还能便捷地将数据存储至本地。在众多Python爬虫应用中&#xff0c;词典数据的爬取尤为常见。接下来&#xff0c;我们将以dict.cn为例&#xff0c;详细演示如何编写一个用于爬取词典数据…...

揭开AI-OPS 的神秘面纱 第四讲 AI 模型服务层(自研方向)

AI 模型服务层技术架构与组件选型分析(自研方向) 基于自有开发寻训练方向 AI 模型服务层 是 AI-Ops 架构的 核心智能引擎,负责构建、训练、部署、管理和监控各种 AI 模型,为上层应用服务层提供智能分析和决策能力。 AI 模型服务层需要提供一个灵活、可扩展、高性能的平台…...

[通俗易懂C++]:std::optional

[通俗易懂C]:std::optional 考虑下面这样一个函数: int doIntDivision(int x, int y) {return x / y; }如果调用者传入一个语义上无效的值&#xff08;例如 y 0 &#xff09;&#xff0c;此函数无法计算一个返回值&#xff08;因为除以 0 在数学上是未定义的&#xff09;。在…...

深入理解与配置 Nginx TCP 日志输出

一、背景介绍 在现代网络架构中&#xff0c;Nginx 作为一款高性能的 Web 服务器和反向代理服务器&#xff0c;广泛应用于各种场景。除了对 HTTP/HTTPS 协议的出色支持&#xff0c;Nginx 从 1.9.0 版本开始引入了对 TCP 和 UDP 协议的代理功能&#xff0c;这使得它在处理数据库…...

使用 vxe-table 导出 excel,支持带数值、货币、图片等带格式导出

使用 vxe-table 导出 excel&#xff0c;支持带数值、货币、图片等带格式导出&#xff0c;通过官方自动的导出插件 plugin-export-xlsx 实现导出功能 查看官网&#xff1a;https://vxetable.cn gitbub&#xff1a;https://github.com/x-extends/vxe-table gitee&#xff1a;htt…...

Spring-事务

Spring 事务 事务的基本概念 &#x1f539; 什么是事务&#xff1f; 事务是一组数据库操作&#xff0c;它们作为一个整体&#xff0c;要么全部成功&#xff0c;要么全部回滚。 常见的事务场景&#xff1a; 银行转账&#xff08;扣款和存款必须同时成功&#xff09; 订单系统…...

开源项目介绍:Native-LLM-for-Android

项目地址&#xff1a;Native-LLM-for-Android 创作活动时间&#xff1a;2025年 支持在 Android 设备上运行大型语言模型 &#xff08;LLM&#xff09; &#xff0c;具体支持的模型包括&#xff1a; DeepSeek-R1-Distill-Qwen: 1.5B Qwen2.5-Instruct: 0.5B, 1.5B Qwen2/2.5VL:…...

vocabulary is from your listening,other speaking and your thought.

不要把单词放在自己的大脑里&#xff0c;放在自己的嘴巴里&#xff0c;自己在那疯狂重复的recite&#xff0c;its futile.只是单点记忆单词&#xff0c;记住也是temporary&#xff0c;而且是单点的记忆&#xff0c;当别人说此词汇&#xff0c;你也听不懂或分辨就是这个单词&…...

前端知识点---路由模式-实例模式和单例模式(ts)

在 ArkTS&#xff08;Ark UI 框架&#xff09;中&#xff0c;路由实例模式&#xff08;Standard Instance Mode&#xff09;主要用于管理页面跳转。当创建一个新页面时&#xff0c;可以选择标准实例模式&#xff08;Standard Mode&#xff09;或单实例模式&#xff08;Single M…...

Matplotlib库中color 参数颜色有多少种

**当我们绘图超过十几种颜色。我都是 定义颜色列表&#xff08; ** colors [blue, green, red, cyan, magenta, yellow, greenyellow, orange, purple, brown, pink, gray]1、 颜色名称 Matplotlib常用的颜色名称&#xff1a; red 或 r green 或 g blue 或 b yellow 或 y cy…...

LINUX虚拟机中,不能播放RTSP设备,怎么办

首先&#xff0c;主机能够打开RTSP设备。虚拟机无法打开。 虚拟机网络设置 桥接网卡&#xff0c;选择正确的网卡。 虚拟机IP设置 需要是同一个网段。交换机的设备是192.168.1.192 用ffplay测试...

宝塔的ssl文件验证域名后,会在域名解析列表中留下记录吗?

在使用宝塔面板进行SSL证书验证域名后&#xff0c;通常不会在域名解析列表中留下记录。验证过程中添加的TXT记录仅用于验证域名的所有权&#xff0c;一旦验证完成&#xff0c;就可以安全地删除这些记录&#xff0c;不会影响SSL证书的正常使用。根据搜索结果&#xff0c;DNS验证…...

mitt 依赖库详解

一、概述 mitt 是一个极其轻量级的 JavaScript 事件发射器库&#xff0c;实现了发布-订阅模式。该模式允许对象间松散耦合&#xff0c;一个对象&#xff08;发布者&#xff09;可以发布事件&#xff0c;而其他对象&#xff08;订阅者&#xff09;可以监听这些事件并作出响应。…...

OSPF网络类型:NBMA与P2MP

一、NBMA网络 NBMA网络的特点 连接方式&#xff1a; 支持多台设备连接到同一个网络段&#xff0c;但网络本身不支持广播或组播。典型例子&#xff1a;帧中继、ATM。 DR/BDR选举&#xff1a; 由于网络不支持广播&#xff0c;OSPF需要手动配置邻居。 仍然会选举DR&#xff08…...

VUE叉的工作原理?

Vuex 是 Vue.js 的一个专门用于状态管理的库&#xff0c;其工作原理基于单向数据流和集中式存储&#xff0c;旨在解决跨组件之间状态共享和管理的复杂性。以下是 Vuex 的核心工作原理及其关键组成部分&#xff1a; 核心概念 State&#xff08;状态&#xff09; Vuex 使用一个单…...

H.264语法结构分析之frame_cropping_flag

技术背景 开发者对接我们轻量级RTSP服务的时候&#xff0c;利用部分开源的播放器&#xff0c;播放流数据的时候&#xff0c;说分辨率不对&#xff0c;导致看到的图像有问题&#xff0c;用我们的player或常见的通用播放器&#xff0c;又都是好的&#xff0c;这就扯到了今天的主…...

【智能体】本地安装Conda和搭建OpenManus环境

整理不易&#xff0c;请不要令色你的赞和收藏。 1. 前言 没体验到 Manus&#xff1f;不妨使用 MetaGPT 开源的 OpenManus 搭建自己的 Manus。本文将带你安装 Conda 并搭建自己的 Manus。 2. 前提条件 已安装 conda&#xff0c;没安装的话&#xff0c;下文有介绍。 OpenManu…...

【linux网络编程】套接字编程API详细介绍

在C语言中&#xff0c;套接字&#xff08;Socket&#xff09;编程主要用于网络通信&#xff0c;尤其是在基于TCP/IP协议的应用程序开发中。常用的套接字编程API主要基于Berkeley Sockets&#xff08;伯克利套接字&#xff09;接口&#xff0c;这些函数通常在<sys/socket.h&g…...

杂项知识笔记搜集

1.pygame pygame可以画出来图形界面&#xff0c;pygame Python仓库 PyGame游戏编程_游戏程序设计csdn-CSDN博客 2.V4L2库 V4L2是Linux上的Camera采集器的框架 Video for Linux &#xff0c;是从Linux2.1版本开始支持的。HDMI视频采集卡采集到的视频通过USB3.0输出&#xff0…...

模型微调——模型性能提升方法及注意事项(自用)

名词补充 人为为训练数据标注的标签称为黄金标准或真实值&#xff0c;这个过程一定程度上保证训练的准确性&#xff0c;但是其人工标注的成本和时间很高&#xff0c;并且标注的标签受人的主观因素影响。 导致模型性能不佳的因素和解决办法 ①不同类别的数据不平衡&#xff1a;统…...

RabbitMQ之旅(1)

相信自己,终会成功 目录 主流MQ产品 1.kafaka 2.RocketMQ 3.RabbitMQ 在xshell上安装RabbitMQ RabbitMQ七种工作模式 1.简单模式 ​编辑 2.工作队列模式 3.发布/订阅模式 4.路由模式 5.通配符模式 6.RPC模式 AMQP.BasicProperties 设置消息属性的类 7.发布确认模…...

TCP7680端口是什么服务

WAF上看到有好多tcp7680端口的访问信息 于是上网搜索了一下&#xff0c;确认TCP7680端口是Windows系统更新“传递优化”功能的服务端口&#xff0c;个人理解应该是Windows利用这个TCP7680端口&#xff0c;直接从内网已经具备更新包的主机上共享下载该升级包&#xff0c;无需从微…...

跟着 Lua 5.1 官方参考文档学习 Lua (11)

文章目录 5.4.1 – PatternsCharacter Class:Pattern Item:Pattern:Captures: string.find (s, pattern [, init [, plain]])例子&#xff1a;string.find 的简单使用 string.match (s, pattern [, init])string.gmatch (s, pattern)string.gsub (s, pattern, repl [, n])例子&…...

<script setup>和export default { setup() { ... } }区别

在 Vue 3 组合式 API&#xff08;Composition API&#xff09;中&#xff0c;<script setup> 和 export default setup() {} 都用于定义组件的逻辑&#xff0c;但它们有一些重要的区别&#xff1a; 1️⃣ <script setup>&#xff08;推荐&#xff09; ✅ 更简洁、…...

leetcode hot100--动态规划【五步总纲】

五步&#xff1a; 1.dp数组以及下标定义 dp[i] 2.递推公式 dp[n]dp[n-1]dp[n-2] 3.dp数组如何初始化 注意&#xff1a;判断边界条件&#xff0c;n0dp[1]就不存在【斐波那契】 4.遍历顺序 for循环顺序 5.打印数组【debug】 第一题&#xff1a;斐波那契数列 首先回顾了…...

RtlLookupAtomInAtomTable函数分析之RtlpAtomMapAtomToHandleEntry函数的作用是验证其正确性

第一部分&#xff1a; NTSTATUS RtlLookupAtomInAtomTable( IN PVOID AtomTableHandle, IN PWSTR AtomName, OUT PRTL_ATOM Atom OPTIONAL ) { NTSTATUS Status; PRTL_ATOM_TABLE p (PRTL_ATOM_TABLE)AtomTableHandle; PRTL_ATOM_TABLE_ENTRY a; …...

【从零开始学习计算机科学】硬件设计与FPGA原理

硬件设计 硬件设计流程 在设计硬件电路之前,首先要把大的框架和架构要搞清楚,这要求我们搞清楚要实现什么功能,然后找找有否能实现同样或相似功能的参考电路板(要懂得尽量利用他人的成果,越是有经验的工程师越会懂得借鉴他人的成果)。如果你找到了的参考设计,最好还是…...

todo: 使用融云imserve做登录(android)

使用融云做登录注册思路 注册界面需要name, email, password考虑到融云注册用户的post格式 POST http://api.rong-api.com/user/getToken.json?userId1690544550qqcom&nameIronman这里的userId可以使用用户的email&#xff0c;但是要截断和 . 符号&#xff0c;即1690544…...

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以&#xff0c;键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手&#xff01; 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个&#xff0c;我们想到的第一个可以…...

Azure云生态系统详解:核心服务、混合架构与云原生概念

核心服务&#xff1a;深入掌握Azure SQL Database、Azure Database for PostgreSQL、Azure Database for MySQL的架构、备份恢复、高可用性配置&#xff08;如Geo-Replication、自动故障转移组、异地冗余备份&#xff09;。混合架构&#xff1a;熟悉Azure Arc&#xff08;管理混…...