HTTPS加密流程
什么是HTTPS
HTTPS是加密后的HTTP,相当于:HTTPS = HTTP + SSL/TLS
HTTPS是基于"密钥"来实现的,客户端将发送的数据用密钥进行加密,服务器将收到的数据用密钥解密.
对称加密和非对称加密
对称加密是指:交互双方共同使用同一个密钥进行加密 或 解密.
如下(图中的客户端和服务器里面的key是同一个):

客户端将报文a通过密钥加密后形成报文b
服务器将报文b通过密钥解密后得到报文a
如果有黑客入侵了中间节点,获取传输的数据,但是黑客没有密钥(key),他就无法得知报文的真正内容.
但是密钥的商定也是需要进行双方交互的.
假如:客户端要生成一个密钥,此时就需要将密钥发送给服务器,但是发送密钥的报文不可以加密,因为此时客户端还不知道密钥的内容,所以就需要明文传输,如果黑客此时获取到了密钥,那么加密就显得毫无意义.

此时就非对称加密的作用就体现了.
非对称加密:交互双方使用两个密钥(公钥和私钥)分别进行 加密 或 解密
客户端: 报文a + 公钥 = 报文b
服务器: 报文b + 私钥 = 报文a
也就说:公钥用来加密但是不能用来解密,私钥可以用来解密但是不可以用来加密.
此时再回到上面的请况:
由于公钥和私钥是由服务器生成的,所以客户端的公钥是通过服务器获取的,而这个公钥的传输是没有加密的,黑客也可以知道,然后客户端使用这个公钥来对报文进行加密,服务器使用私钥进行解密,但是由于黑客不知道私钥,所以他就无法对报文进行解密,此时针对上面的请况就可以有效解决了.
那么非对称加密这么安全还为什么要用对称加密呢?
因为非对称加密进行解密的时候慢,而对称加密进行解密的时候快.
所以实际操作的时候,同时是使用公钥和私钥约定好一个对称密钥(这个对称密钥黑客无法解析),然后在使用对称密钥来传递信息,此时既提高了效率,又增强了安全性.

中间人攻击
前面提到的对称加密和非对称加密,虽然在一定程度上避免了外界对于信息的盗取/修改,但是仍然会存在一些问题,比如现在说到的中间人攻击.
在非对称加密中,我们通过这种加密方式,使得黑客在正常通信传输的情况下无法获取到真正的信息,但是如果黑客将发送的数据掉包了呢?
如下图:

证书
基于上面的问题,我们可以引入"证书"来解决.
上面的情况,会别黑客成功的本质原因就是:客户端不知道当前的信息是不是服务器发过来的,那么我们解决了这个问题,中间人攻击的问题也就迎刃而解了.
证书,它其实就是第三方认证机构提供的一个资质,服务器可以通过这个证书将公钥进行传递,而客户端也可以对这个证书进行验证操作,判断这个证书是否被人篡改过了.
如下图:

在服务器设立之初, 就需要去专门的认证机构去申请证书.当审核通过后,就会给你颁发证书.
然后服务器就可以使用这个证书去传递公钥给客户端,客户端再对证书进行校验,然后再进行之后的交互.
那么黑客是否可以修改证书呢?
答案是不可以.
在证书中除了一些字段和公钥之外,还有一个签名,这个签名是认证机构使用它自己的密钥对证书的整体进行运算后得到的一个加密的字符串.如果里面有内容发生了改变,那么客户端使用认证机构提供的公钥解密后得到的签名就会不一样,此时客户端就知道这个证书的内容发生了改变,就不会轻易的将密钥发送过去了.
相关文章:
HTTPS加密流程
什么是HTTPSHTTPS是加密后的HTTP,相当于:HTTPS HTTP SSL/TLSHTTPS是基于"密钥"来实现的,客户端将发送的数据用密钥进行加密,服务器将收到的数据用密钥解密.对称加密和非对称加密对称加密是指:交互双方共同使用同一个密钥进行加密 或 解密.如下(图中的客户端和服务器…...
Binder通信原理与弊端解析
Binder 定义 简单来说,Binder 就是用来Client 端和 Server 端通信的。并且 Client 端和 Server 端 可以在一个进程也可以不在同一个进程,Client 可以向 Server 端发起远程调用,也可以向Server传输数据(当作函数参数来传ÿ…...
网络使用情况监控
您的网络是否经常成为网络紧张或带宽瓶颈的牺牲品?瓶颈并不一定意味着带宽不足;它们可能是由占用带宽到严重网络威胁等任何因素造成的。密切监控您的网络并分析带宽使用情况和网络流量对于找到问题的根源非常重要。NetFlow Analyzer是最先进的网络使用情…...
业务流程图TFD和数据流程图DFD例题
业务流程图(TFD)管理业务流程图(Transaction Flow Diagram,简称TFD)用来描述系统各部门、人员之间存在的业务关系、作业顺序以及管理信息流向的图表。绘制该图使用以下四种符号:例题例题1:物资订…...
react框架基础入门
前端三大框架:angularvue —-2||3react区别:vue国内框架 封装较完成。全程使用封装的api来完成。react国外技术框架—-偏向于底层js实现。没有的大量的封装。需要使用js手动实现。react需求在不断增大。必会框架。官网https://react.docschina.org/ 中…...
C++ ,JNI, Java 数据传递全解(一)
在讲正题之前,先说一下C,JNI和Java 对应的数据类型对比吧,废话不多说,直接上图上面为C,Java,JNI 三者只见对应的数据类型好了,现在我们有了上面的数据类型比对,下面就讲讲从C如何将数…...
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
文章目录前言什么是外挂?锁血瞬移都是怎么做的?Unity引擎的致命缺陷是什么?WEB入侵如何做到?Unity外挂攻防概述典型游戏现实应用Unity开发流程Unity工作界面打包发布方式MonoMono跨平台原理JIT方式优点:因此后期Unity发…...
Spring基础与创建
目录 前言 Spring基础与核心概念 Spring是什么 1、什么是容器 2、什么是IoC 3、理解SpringIoC 4、DI(依赖注入) Spring的创建和使用 1、创建Spring项目 1.1、创建一个普通Maven项目 1.2、添加Spring框架支持 1.3、添加启动类和main方法 2、…...
虚拟机系列教程:虚拟机克隆
克隆主要是对磁盘文件进行操作。 1)完整克隆 a、拷贝虚拟机磁盘文件 b、生成虚拟机配置文件 centos7-2 291b0480-955a-45e2-a001-690fded69d1b c、导入xml并启动 [rootcentos8 ~]# virt-clone -o centos7 --auto-clone ERROR 要克隆的域必须已经关闭。 [rootcent…...
iperf3主页官方信息
iPerf 是一款支持TCP,UDP和SCTP的高速协议测试工具 网络极限性能测试网络中立性检测 主页 下载iPerf安装包 公共的iPerf3服务器 iPerf用户手册 iPerf论坛—法语 联系我们 iPerf / iPerf3简介 iPerf3是一款用于对IP网络的最大带宽进行主动测试的工具。提供对和时间&…...
Linux-0.11 kernel目录进程管理sched.c详解
Linux-0.11 kernel目录进程管理sched.c详解 sched.c主要功能是负责进程的调度,其最核心的函数就是schedule。除schedule以外, sleep_on和wake_up也是相对重要的函数。 schedule void schedule(void)schedule函数的基本功能可以分为两大块,…...
AI已到,普通人的机会在哪里?
“普通人赚到钱很难 但是被骗到钱很容易”。每当火起来一个行业(或者仅是一个概念),都会有人来问:现在去做点什么,能够踩上风口?普通人的赚钱机会在哪?怎么做能够暴富?让我们先来看看…...
CSP-J2022入门组二轮补赛试题(山东)T2:宴会
题目链接 CSP-J2022入门组二轮补赛(山东)第2题:宴会 题目背景 今人不见古时月,今月曾经照古人。梦回长安,大唐风华,十里长安花,一日看尽。 唐长安城是当时世界上规模最大、建筑最宏伟、规划布局最为规范化的一座都城。其营建 制度规划布局的特点是规模空前、创设皇城…...
ubuntu 使用 CMake 构建 Qt5 项目
Qt 概述 概念 Qt 是一个跨平台的 C 图形用户界面应用程序框架 常见的 C GUI: Qt 和 MFC 跨平台 Windows Linux MacOS 嵌入式平台 版本 包括商业版和开源免费版 案例 Linux 桌面环境 KDE WPS Office Qt 安装 下载地址: https://download.qt.io/archive/qt/ http…...
ZooKeeper命令及JavaAPI操作
ZooKeeper数据模型 ZooKeeper是一个树形目录服务,其数据模型和Uiix的文件目录树很类似,拥有一个层次化结构。这里面的每一个节点都被称为:ZNode,每个节点上都会保存自己的数据和节点信息。节点可以拥有子节点,同时也允…...
云医疗信息系统源码(云HIS)商业级全套源代码
云his系统源码,有演示 一个好的HIS系统,要具有开放性,便于扩展升级,增加新的功能模块,支撑好医院的业务的拓展,而且可以反过来给医院赋能,最终向更多的患者提供更好地服务。 私信了解更多&…...
u盘拔掉再插上去文件没了原因|文件恢复方法
如果您遇到了“u盘拔了再插文件变空了”的类似问题困扰,请仔细阅读文本,下面将分享几种方法来恢复u盘上丢失的文件,赶紧来试试!为什么u盘拔掉再插上去文件没了“我的u盘为什么放进东西后拔出,再插进电脑去东西就没有了…...
CorelDRAW2023详解新增七大功能 ,CorelDRAW2023最新版本更新怎么样?
CorelDRAW2023新功能有哪些?CorelDRAW2023最新版本更新怎么样?让我们带您详细了解! CorelDRAW Graphics Suite 2023是矢量制图行业的标杆软件,2023年全新版本为您带来多项新功能和优化改进。本次更新强调易用性,包括更…...
LearnOpenGL-光照-4.光照贴图
本人刚学OpenGL不久且自学,文中定有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/LearnOpenGLProject 文章目录光照贴图漫反射贴图例子1镜面光贴图例子2 采样镜面光贴图小结什么是光照贴图光照贴图如何影响颜色光…...
ThreadLocal解析
ThreadLocal是一个存储线程本地变量的对象,在ThreadLocal中存储的对象在其他线程中是不可见的,本文介绍ThreadLocal的原理。 1、threadLocal使用 有如下代码: Slf4j public class TestThreadLocal {public static void main(String[] args…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
