浅谈https
1.网络传输的安全性
- http 协议:不安全,未加密
- https 协议:安全,对请求报文和响应报文做加密

2.对称加密与非对称加密
2.1 对称加密
-
特点:
加解密使用 相同 秘钥 高效,适用于大量数据的加密场景 算法公开,安全性取决于秘钥大小,但秘钥越大效率越低,需要权衡在安全和效率中做权衡
-
缺点:
算法本身安全,但使用场景不够安全,因为解密和加密都是同一个秘钥

2.2 非对称加密
使用 匹配的一对密钥 来分别进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)
注意:公钥加密的数据 只能 用 对应的私钥解密,同理,私钥加密的数据 只能用 对应的公钥解密
算法:RSA、ECC、Elgamal、背包算法、Rabin、D-H 等
特点:安全性高
缺点:加解密复杂,效率低,耗时较长
用法概要:
- 加密:对数据做加密
- 签名:证明数据是谁发的
2.3 非对称加密用法
-
准备工作:
1.生成一对匹配的 私钥 和 公钥 (ps:公钥其实是根据私钥生成的)
2.将公钥公布给外界

2.3.1 公钥加密
-
场景: 用来针对互联网上加密数据传递
Linda 用
James的公钥对数据进行加密,然后发给 James,James用自己的私钥解密

因为一个公钥加密的数据 只有 对应的 私钥才能解密,所以密文很安全
补充:如果要在网络上相互发送密文,可以让对方也发对方的公钥过来,用对方的公钥来加密
2.3.2 私钥签名
-
场景: 目的是为了将明文公布给别人,同时证明是自己发的;可以防止明文被篡改。
第一步: James 用
James的私钥对明文的hash值进行加密,把密文(签名)和明文一起发给 Linda
第二步: Linda 用
James的公钥进行解密,解密后的明文hash值 和 接收到的明文的hash值进行对比,如果一样则是 James 发的
3. https协议
- 端口 443
3.1 基本流程

1 http明文方式传输
数据在传输过程中未加密,有被窃取的可能,不安全。
2 采用对称加密
对称加密——加解密使用 相同 秘钥
如果采用对称加密的话,通信双方使用同一把秘钥进行加密解密,即在传输的时候,需要把 加密后的密文 连同 秘钥 一起在网络上进行传输,这样才能使对方在拿到密文后能够使用该密钥顺利进行解密。
问题:如果在传输过程了截取了密文和秘钥,则信息不安全。
3 采用非对称加密
非对称加密 使用 匹配的一对密钥 来
分别进行加密和解密公钥加密的数据 只能 用 对应的私钥解密,同理,私钥加密的数据 只能用 对应的公钥解密
服务器生成一对公钥和私钥,并把 公钥 发送给浏览器,浏览器将要发送的数据用 服务器公钥 加密后形成密文发送给服务器。服务器拿到密文后用 自己的私钥 对密文进行解密。
问题:如果在给浏览器发送公钥的过程中被黑客截取并篡改成黑客的公钥,浏览器接收到黑客公钥后用其对数据进行加密形成密文。在将密文送给服务器的过程中黑客截取该密文,由于该密文是使用篡改过的黑客公钥进行加密的,则可以用与之对应的黑客私钥进行解密,则信息不安全。
4 如何保证浏览器拿到的服务器公钥是真实有效的
证书认证机构CA(Certificate Authority)也有自己的公钥和私钥,并把自己的公钥内置在各大计算机操作系统中。
服务器生成一对公钥和私钥,并把 公钥 发送给CA,CA通过该服务器的公钥、该服务器的域名、证书有效期等生成 SSL/TLS 证书 ,然后该服务器存储好自己的证书。
进行通信时,浏览器拿到服务器的证书(包含服务器的公钥和域名等),之后用浏览器所在计算机系统中保存的CA公钥对此证书进行解密,得到服务器的公钥。(解密成功:获取公钥——只要解密成功,就说明 是 机构认证的;解密失败:认证失败)
此番操作的目的是为了保证服务器的 公钥 在传输过程中不会被篡改。
之后延续2的流程,浏览器将要发送的数据用 服务器公钥 加密后形成密文发送给服务器。服务器拿到密文后用 自己的私钥 对密文进行解密。
问题:在数据量大的情况下使用非对称加密时,加解密复杂,效率低,耗时较长
5 非对称加密 + 对称加密
在4的基础上,浏览器不要将发送的数据用 服务器公钥 进行加密。
浏览器生成一个 对称加密 的秘钥(会话密钥)。浏览器用 服务器公钥 对 会话密钥 进行加密,之后将加密过后的会话密钥发送给服务器。服务器拿到加密的会话密钥之后,用自己的 私钥 进行解密,得到解密过后的会话密钥。经过上述流程,浏览器和服务器均获得相同的一把对称加密的秘钥(会话密钥)
从此以后:
浏览器通过 会话密钥 对 请求报文 做加密,服务器通过 会话密钥 对 请求报文 做解密;
服务器通过 会话密钥 对 响应报文 做加密,浏览器通过 会话密钥 对 响应报文 做解密;
非对称算法只用在对会话密钥进行加解密上,而数据量大的请求报文则是采用了高效的对称算法
6 https流程总结
-
服务器生成一对私钥和公钥(非对称加密)
-
通过 CA私钥 加密 生成 服务器证书(服务器公钥、域名…),计算机中已内置 CA公钥
-
浏览器 拿证书,并用内置的 CA公钥 解密得到 服务器公钥
-
浏览器生成 会话密钥(对称加密),浏览器用 服务器公钥 对自己的 会话密钥 进行加密后发送给服务器。服务器用自己的私钥对 会话密钥 进行解密。
-
浏览器和服务器 使用 会话秘钥 来对 请求报文 和 响应报文 做加密
3.2 证书认证机构
- 如果证书颁发机构过多的话,不容易识别,防伪和管理,于是形成了少数几家国际权威的证书颁发机构,这些机构非常权威,默认是所有人都可信的,它们成为根证书。
- 但是除了这些机构外,其他的机构也需要被信任,因而,需要这些权威的机构去授信颁发证书,于是就形成了一级证书机构,一级证书机构又可以继续授信下级机构,于是成为树状结构,对于任何一个组织到根证书就是链状结构。
3.3 CA证书的保存
- 保存在系统中
控制面板上Internet选项里

相关文章:
浅谈https
1.网络传输的安全性 http 协议:不安全,未加密https 协议:安全,对请求报文和响应报文做加密 2.对称加密与非对称加密 2.1 对称加密 特点: 加解密使用 相同 秘钥 高效,适用于大量数据的加密场景 算法公开&a…...
计算两个结构的差
平面上有6个点,以6a1的方式运动 1 1 1 1 - - - 1 - - - 1 现在有一个点逃逸,剩下的5个点将如何运动? 2 2 2 3 - - - 3 - - - 3 将6a1的6个点减去1个点,只有两种可能,或者变成5a2,…...
class037 二叉树高频题目-下-不含树型dp【算法】
class037 二叉树高频题目-下-不含树型dp【算法】 code1 236. 二叉树的最近公共祖先 // 普通二叉树上寻找两个节点的最近公共祖先 // 测试链接 : https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/ package class037;// 普通二叉树上寻找两个节点的最近…...
使用cpolar完成内网穿刺
cpolar官网上有一句评论:cpolar是用过最简单的内网穿刺工具! 实际体验下来,cpolar确实是能够非常简单地实现内网穿刺 先说弊端,免费版的cpolar提供的穿刺地址,有效期为一天,进程连接数有限,如…...
git的使用:基础配置和命令行
前言 代码管理工具,任何开发都离不开的话题。 到了任何公司,第一件事肯定是配置个人的电脑。主要就是三点,配置对应的开发环境,配置各类开发工具和配置git等代码管理工具拉取代码。 这篇文章主要是git的配置和最常用(我指的是最常用)的命令行使用 git基础配置 git的安装 …...
若依微服务项目整合rocketMq
原文链接:ttps://mp.weixin.qq.com/s/IYdo_suKvvReqCiEKjCeHw 第一步下载若依项目 第二步安装rocketMq(推荐在linux使用docker部署比较快) 第二步新建一个生产者模块儿,再建一个消费者模块 第四步在getway模块中配置接口映射规…...
连接服务器的ssh终端自动断开解放方法
在Linux中,SSH连接在一段时间内没有活动时可能会自动断开,这是为了安全性考虑的一种默认行为,以防止未经授权的访问。这个时间限制通常由SSH服务器的配置决定。你可以通过以下几种方式来处理这个问题: 1.使用SSH配置文件…...
Windows+WSL开发环境下微服务注册(Consul)指定IP
Win11下安装一个WSL2,做开发环境,简直是爽到不要不要的,相当于既有Windows下的完善生态,又有linux的便利。特别是,在linux下运行的服务端口号,完全和windows是相通的,直接在windows下浏览访问&a…...
通过K8S安装人大金仓数据库
1. 离线下载镜像,请点击 2. 官网下载镜像 https://www.kingbase.com.cn/xzzx/index.htm,根据自己的需求下载对应版本。 3. K8S需要的yaml清单 cat > kingbase.yaml << EOF apiVersion: apps/v1 kind: Deployment metadata:name: kingbase-…...
正则表达式(3):入门
正则表达式(3):入门 小结 本博文转载自 从这篇文章开始,我们将介绍怎样在Linux中使用”正则表达式”,如果你想要学习怎样在Linux中使用正则表达式,这些文章就是你所需要的。 在认识”正则表达式”之前&am…...
《系统架构设计师教程(第2版)》第2章-计算机系统基础知识-01-计算机硬件
文章目录 1. 计算机系统概述2. 计算机硬件2.1 处理器(CPU)2.2 存储器2.2.1 概述2.2.2 按硬件结构分类2.2.3 按与处理器距离分2.3 总线(Bus)2.3.1 概念2.3.2 分类2.3.3 串行总线和并行总线2.4 接口2.4.1 概念2.4.2 常见接口2.5 外部设备1. 计算机系统概述 #mermaid-svg-IcU0sR…...
用友NC word.docx接口存在任意文件读取漏洞
声明 本文仅用于技术交流,请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 一、产品介绍 用友 NC Cloud,大型企业数字化平台ÿ…...
【离散数学】——期末刷题题库(等价关系与划分)
🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:…...
IDEA maven无法下载源代码处理
1、使用idea内置maven 在idea中新增一个mvn运行项,截图如下: 输入命令: dependency:resolve -Dclassifiersources 2、如果外部maven,不使用idea内部maven 在工程目录下命令行执行命令: mvn dependency:resolve -Dclassifiersources...
基于B/S架构的医院一体化电子病历编辑器源码
电子病历在线制作、管理和使用的一体化电子病历解决方案,通过一体化的设计,提供对住院病人的电子病历书写、保存、修改、打印等功能。电子病历系统将临床医护需要的诊疗资料以符合临床思维的方法展示。建立以病人为中心,以临床诊疗信息为主线…...
免费百度SEO优化工具,百度SEO优化排名工具
百度SEO关键词工具 让我们聚焦在百度SEO关键词工具上。对于任何想要在百度搜索引擎中脱颖而出的网站管理员而言,深入了解用户搜索习惯和关键词的选择是至关重要的。 百度SEO关键词工具不仅提供了免费的服务,而且功能强大。通过输入相关领域的关键词&…...
12.Java程序设计-基于Springboot框架的Android学习生活交流APP设计与实现
摘要 移动应用在日常生活中扮演着越来越重要的角色,为用户提供了方便的学习和生活交流渠道。本研究旨在设计并实现一款基于Spring Boot框架的Android学习生活交流App,以促进用户之间的信息分享、学术交流和社交互动。 在需求分析阶段,我们明…...
JVM虚拟机(已整理,已废弃)
# JVM组成 ## 简述程序计数器 线程私有,内部保存class字节码的行号。用于记录正在执行的字节码指令的地址。 线程私有-每个线程都有自己的程序计数器PC,用于记录当前线程执行哪个行号 ## 简述堆 ## 简述虚拟机栈 ## 简述堆栈区别 ## 方法内局部变量是…...
强化学习——简单解释
一、说明 最近 OpenAI 上关于 Q-star 的热议激起了我温习强化学习知识的兴趣。这是为强化学习 (RL) 新手提供的复习内容。 二、强化学习的定义 强化学习是人类和其他动物用来学习的学习类型。即,通过阅读房间来学习。(从反馈中学习)。让我解…...
IoT DC3 是一个基于 Spring Cloud 全开源物联网平台 linux docker部署傻瓜化步骤
如有不了解可先参考我的另一篇文章本地部署:IoT DC3 是一个基于 Spring Cloud 的开源的、分布式的物联网(IoT)平台本地部署步骤 如有不了解可先参考我的另一篇文章本地部署: 1 环境准备: JDK 8 以上 docker 安装好 下载docker-compose-dev.yml 文件 执行基础环境docker安装 …...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
