【计算机网络】HTTPs 传输流程
HTTPS和HTTP的区别
1、HTTP协议传输的数据都是未加密的,是明文的,使用HTTP协议传输隐私信息非常不安
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
2、HTTPS协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTPs 传输流程
SSL/TLS协议的基本思路是采用公钥加密法,即
客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
但是整个过程不是都是经过公钥加密、私钥解密的,在数据传输阶段,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。
以下内容参考博客:HTTPS 加密过程解析_波吉也有烦恼的博客-CSDN博客

- 客户端向服务端发起网络请求
- 服务度端向客户端返回携带 公钥A 的证书
- 客户端解析证书(浏览器完成的)验证合法性
- 验证通过之后 从证书中取出 公钥A
- 随后生成一个 随机码KEY(客户端公钥),并用公钥A进行加密,再传递给服务端
- 服务端接收到 随机码之后使用 私钥B 进行解码获取客户端公钥(随机码KEY)
- 然后将要传输的数据通过随机码 KEY进行加密发送给客户端
- 客户端接收到加密过的数据之后使用随机码KEY进行解密
涉及到的一些算法
这里面用到的算法是:RSA密钥交换算法(属于TLS 1.0版本的答案)

现在TLS 1.2已经成为主流,使用ECDHE算法

ECDHE算法流程文字描述如下:
(1)客户端随机生成随机值Ra,计算Pa(x, y) = Ra * Q(x, y),Q(x, y)为全世界公认的某个椭圆曲线算法的基点。将Pa(x, y)发送至服务器。
(2)服务器随机生成随机值Rb,计算Pb(x,y) = Rb * Q(x, y)。将Pb(x, y)发送至客户端。
(3)客户端计算Sa(x, y) = Ra * Pb(x, y);服务器计算Sb(x, y) = Rb *Pa(x, y)
(4)算法保证了Sa = Sb = S,提取其中的S的x向量作为密钥(预主密钥)。
相关文章:
【计算机网络】HTTPs 传输流程
HTTPS和HTTP的区别 1、HTTP协议传输的数据都是未加密的,是明文的,使用HTTP协议传输隐私信息非常不安 HTTPS协议是由SSLHTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。 2、HTTPS协议需要到CA申请证书,一般…...
【Linux】国产深度系统装机必备(开发、日常使用)
开发相关工具 IDE推荐官网下载JetBrains Toolbox,后续所有与jetbrains直接全部到toolbox中下载,这里默认所有的app全部放在个人用户下(/data/home/计算机用户名/.local/share/JetBrains/Toolbox/apps)终端可视化工具:…...
动态规划入门:斐波那契数列模型以及多状态(C++)
斐波那契数列模型以及多状态 动态规划简述斐波那契数列模型1.第 N 个泰波那契数(简单)2.三步问题(简单)3.使⽤最⼩花费爬楼梯(简单)4.解码方法(中等) 简单多状态1.打家劫舍ÿ…...
LeetCode438.找到字符串中所有字母异位词
因为之前写过一道找字母异位词分组的题,所以这道题做起来还是比较得心应手。我像做之前那道字母异位词分组一样,先把模板p排序,然后拿滑动窗口去s中从头到尾滑动,窗口中的这段字串也给他排序,然后拿这两个排完序的stri…...
【微服务】03-HttpClientFactory与gRpc
文章目录 1.HttpClientFactory :管理外向请求的最佳实践1.1 核心能力1.2 核心对象1.3 HttpClient创建模式 2.gRPC:内部服务间通讯利器2.1 什么是gRPC2.2 特点gRPC特点2.3.NET生态对gRPC的支持情况2.4 服务端核心包2.5 客户端核心包2.5 .proto文件2.6 gRP…...
iOS开发之查看静态库(.a/.framework)中包含的.o文件和函数符号(ar,nm命令)
.a/.framework其实是把编译生成的.o文件,打包成一个.a/.framework文件。a的意思是archive/归档的意思。 查看静态库.a文件包含的内容用下面的命令解压: ar x xxx.a 用ar命令打包静态库: 参数r是将后面的*.o或者*.a文件添加到目标文件中 参数…...
Idea常用快捷键--让你代码效率提升一倍(一)
一、代码编辑相关快捷键 1.单行复制(实现快速创建多个对象)CtrlD 2.空出下一行 ShiftEnter 3.单行注释快捷键 ctrl / 4.快速构建构造函数,setter,getter、toString方法 AltInsert 4.显示快速修复和操作的菜单 altenter 5.格式化代码:C…...
【Open3D】第二篇:GUI编程
文章目录 基本控件创建创建文本框创建button创建布局 绘制形状绘制线段绘制点云 设置属性设置线宽设置点大小 可用Shader汇总GUI框架 基本控件创建 创建文本框 push_edit gui.TextEdit()创建button push_button gui.Button(...) push_button.horizontal_padding_em 0.5 p…...
【Python】P0 本系列博文简介与大纲
Python 前言本系列博文适合谁本系列博文不适合谁本系列博文大纲 前言 本系列博文基于《Python Cookbook》一书,Python 3 版本;本系列博文的目标不是为了构建一个 Python 知识大全,而是为了那些需要快速将 Python 学以致用的相关人员…...
FL Studio 21.1.0 Build 3713中文破解免费下载安装激活
FL Studio 21是一个功能齐全、开放式的PC音乐创作和制作环境。它具有基于音乐序列器的图形用户界面。 这个数字音频工作站将您所需的一切整合在一个包中,用于创作、编排、录制、编辑、混音和掌握专业质量的音乐。 FL Studio 21是从你的大脑到扬声器的最快方式。制作…...
从0开始配置eslint
没有在.eslintrc文件中配置parserOptions指定语言版本和模块类型 {"parserOptions": {"ecmaVersion": 7, //指定es版本为es2016"sourceType": "module", //使用import导入模块} }eslint还不能识别jsx语法 {"parserOptions"…...
Activity 的启动流程(Android 13)
Activity 的启动过程分为两种:一种是普通 Activity 的启动过程,另一种是根 Activity 的启动过程。普通 Activity 指的是除应用程序启动的第一个 Activity 之外的其他 Activity。根 Activity 指的是应用程序启动的第一个 Activity,因此&#x…...
deepspeed学习资料
记录一些deepspeed学习过程中的好文章 【进行中】1、DeepSpeed使用指南(简略版)_Reza.的博客-CSDN博客 - 含deepspeed的安装方法 - 含 zero config的不同配置,stage1、stage2、stage3的配置和解释...
数据分享|R语言PCA主成分、lasso、岭回归降维分析近年来各国土地面积变化影响...
全文链接:http://tecdat.cn/?p31445 机器学习在环境监测领域的应用,着眼于探索全球范围内的环境演化规律,人类与自然生态之间的关系以及环境变化对人类生存的影响(点击文末“阅读原文”获取完整代码数据)。 课题着眼于…...
Docker-Consul
Docker-Consul 一、介绍1.什么是服务注册与发现2.什么是consul3.consul提供的一些关键特性: 二、consul 部署1.环境准备2.consul服务器3.查看集群信息4.通过 http api 获取集群信息 三、registrator服务器1.安装 Gliderlabs/Registrator2.测试服务发现功能是否正常3…...
Pygame编程(2)display模块
pygame编程2-display设备显示 pygame.display.init() 初始化 display 模块init() -> None pygame.display.get_init() 获取display初始化 状态,如果已经初始化,返回 True,否则返回Falseget_init() -> bool pygame.display.quit() 退出…...
第十五天|104.二叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数
104.二叉树的最大深度 题目链接:104. 二叉树的最大深度 - 力扣(LeetCode) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullp…...
图像识别技术在医疗领域的革命:探索医学影像诊断的未来
导言: 随着人工智能和计算机视觉的快速发展,图像识别技术在医疗领域正掀起一场革命。医学影像诊断是医疗工作中的重要环节,而图像识别技术的引入为医生提供了更准确、高效的辅助手段。本文将深入探讨图像识别技术在医疗领域的应用,…...
计网第四章(网络层)(二)
目录 IPV4地址编址 第一历史阶段(分类编址): A类地址: B类地址: C类地址: D类地址(多播地址): E类地址(保留地址): 第二历史阶…...
原生微信小程序使用 wxs;微信小程序使用 vant-weapp组件
1.原生微信小程序使用 wxs 1.内嵌 WXS 脚本 2. 定义外链 wxs 3. 使用外连wxs 在这里插入图片描述 2. 微信小程序使用 vant weapp 1.安装步骤 2. 安装包管理(package.json)文件的方法 操作顺序 :文档地址 如果使用 typescript 需要操作步骤3,否则不…...
LazyVim终极指南:5分钟打造高效Neovim开发环境
LazyVim终极指南:5分钟打造高效Neovim开发环境 【免费下载链接】LazyVim Neovim懒人配置。 项目地址: https://gitcode.com/GitHub_Trending/la/LazyVim LazyVim是一个基于💤 lazy.nvim的Neovim懒人配置方案,专为希望快速搭建专业开发…...
MySQL 8.0 等保合规实战:手把手配置开源审计插件 server_audit.so
MySQL 8.0 等保合规审计插件实战指南 在数字化转型浪潮中,数据库安全审计已成为企业合规运营的刚需。对于使用MySQL 8.0的企业而言,如何在不影响性能的前提下满足等保2.0三级及以上对数据库审计的要求,是每位DBA和安全工程师必须掌握的技能。…...
VMware Unlocker:跨平台部署macOS虚拟机的创新方法 - 开发者实战指南
VMware Unlocker:跨平台部署macOS虚拟机的创新方法 - 开发者实战指南 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 一、价值定位:突破虚拟化技术壁垒 在x86架构硬件上运行macOS系统长期面临兼容性限制&…...
突破系统限制:Mac Mouse Fix如何重新定义第三方鼠标体验
突破系统限制:Mac Mouse Fix如何重新定义第三方鼠标体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 在macOS生态系统中,第三方鼠…...
不知道怎么用Claude code?
稳定可靠中转站,不降智!!...
Hunyuan-MT-7B在文档翻译中的应用:一键部署,轻松处理多语言文档
Hunyuan-MT-7B在文档翻译中的应用:一键部署,轻松处理多语言文档 1. 为什么选择Hunyuan-MT-7B进行文档翻译 在全球化协作日益频繁的今天,企业和个人经常需要处理多语言文档。传统翻译方式要么成本高昂,要么质量参差不齐。Hunyuan…...
3个实用技巧:Qwen Code多语言支持让开发者效率提升40%
3个实用技巧:Qwen Code多语言支持让开发者效率提升40% 【免费下载链接】qwen-code Qwen Code is a coding agent that lives in the digital world. 项目地址: https://gitcode.com/GitHub_Trending/qw/qwen-code 在全球化协作日益频繁的开发环境中ÿ…...
Docker快速搭建个人开源导航站:从配置到公网访问
1. 为什么你需要一个个人导航站? 每天打开浏览器,你是不是也和我一样要反复输入那些常用的网址?GitHub、技术论坛、在线工具网站...收藏夹早就塞得乱七八糟。更糟的是换了电脑或手机,所有收藏都得重新整理。三年前我开始用自建导…...
对公司在使用AI变成的思考,我们是牧羊人吗?
当人类成为AI的牧羊人:在数字羊群中找回人的坐标晨光透过百叶窗,落在张工的键盘上。他刚刚用AI生成了三套前端方案,此刻正像牧羊人清点羊群般滑动鼠标核验代码。隔壁工位的李姐对着AI绘制的数据可视化图表皱眉——那根异常波动曲线像迷途的羔…...
「理」的征程(C++引入2——变量、运算与赋值(初步)(上))
在上一篇博文中,我教给大家了C的基础知识——输出,那么今天,让我们迈出踏入C殿堂的第二步——变量、运算与赋值。(虽然说这篇文章好像只讲了变量)(P.S.我在学并查集的时候发现了一个非常棒的博文࿰…...
