linux网络 | https前置知识 | 数据加密与解密、数据摘要

        前言:本节内容讲述https的相关内容。 https博主会着重讲解https如何让一个请求和一个响应能够安全的进行交互。 https博主将用两篇文章进行讲解。本篇是两篇中第一篇。会把http的安全问题引出来, 然后说一下https的基本解决方法。 下面废话不多说, 开始我们的学习吧!

        ps:https其实就是http上面的延申, 所以建议友友们最好学习完http再来学习本节内容哦。

目录

 什么是https

中间人

数据加密与密钥

数据摘要 


 什么是https

        看https之前, 我们先来回忆一下这张图:

        我们历史上写的套接字, 其实的都是利用操作系统给我们提供的系统调用接口。 然后接口的上面的部分, 其实就是应用层, 我们以前写的代码都是应用层的代码。 然后下面的三层是系统部分, 解决的是数据传输的问题。 

        当我们发送数据的时候, 其实是将数据自上而下交付, 然后交给对面。 对面再自底向上将数据一层一层交付。

        在这个过程中, 应用层下面的许多层都能拿到这个数据, 所以这是不安全的。 那么应用层为了安全就要在下面放上一个软件曾ssl加密解密层。 这样以后通信双方应用层下面的各层都不知道应用层通信了什么。

        上面的这个HTTP协议和软件曾加密解密层合起来, 就叫做https。

如果一个攻破的成本 > 攻破后的收益, 那么就有可能不安全。 ssl协议是有权威的官方加密解密方案的。 但是有权威代表用的人多, 就意味着被破解后的收益大, 也就意味着有更多的黑客来攻破这套方案。 所以, 对于官方的人来说, 隔一段时间就要对这套方案进行更新和维护。 所以, 没有百分百安全的协议,只是算力的问题。

        HTTP没有加密, 是明文传送。 而HTTPS加密了, 是密文传送。加密就是把明文变密文。解密就是把密文变成明文。 一般我们加密解密的过程都需要很多辅助的数据, 这些数据我们一般称为密钥。

中间人

        接下来我们要讲解一种叫做中间人的东西,我们的浏览器在访问某些大型服务器的时候, 其实都要经过一个叫做运行商的东西。 浏览器向服务器发送请求,要经过运营商,然后服务器向浏览器返回响应,也要经过运营商。

        但是,我们在访问浏览器的时候可能会遇到一种情况,就是我们想要下载一个软件,比如说我们想要下载qq。但是我们点击下载,下载完成后发现我们下载的其实是应用宝,这个其实就是运营商的原因。

        如上图, 就是一开始我们向服务器说下载qq,然后服务器响应了一个页面,里面有qq的各种信息。然后我们再请求下载,然后服务器就响应了一个qg的连接。但是经过运营商的时候,这个连接就被替换成了应用宝的连接。 我们点击下载, 也就只能是应用宝了。

        对于运营商来说,可以这么做, 如果是和服务器达成了协议, 那么也可以理解。但是运营商的这种截取请求和响应的这种中间人的攻击却很危险。如果被其他人利用, 就会造成信息泄露。


        一般就是个人主机的请求要经过局域网内的路由器,然后经过中间商,最后到达服务器。

        而既然要经过路由器,那么其实路由器也是能拿到个人主机内做的请求的,如果这些请求是明文的,那么在这客户端与服务器中间的这些设备, 都能看到我们的请求。

        那么如果我们连接的不是路由器的网络,而是别人的无线,或者学校的网络,那么别人或者学校,就能拿到我们的请求。我们的信息就暴露了

数据加密与密钥

        为了我们的信息的保密性, 就要对数据进行加密, 常见的加密方式有两种,对称加密和非对称加密。

  •         对称加密就是只用一个密钥,对称加密的算法加密速度快, 加密效率高。
  •         非对称加密就是使用两种密钥, 一种叫做私钥, 一种叫做公钥。

        对称加密好说, 主要是非对称加密, 下面是非对称加密的方式:

        就是对于一串报文,如果是明文,就可以用A密钥加密,然后发送给别人,别人拿着B解密。         然后B呢, 也可以拿着一串明文加密,然后由密钥A进行解密。这就是非对称密钥。 以后呢,用A加的密,就必须用B来解密, 用B加的密, 就必须用A来解密。

         我们对于A和B就必须把其中一个进行公开,另一个私有。 公开的那个就叫做公钥,然后私有的那个就叫做私钥。

        这种做法特点是: 用公钥加密,这个世界上只能由拥有私钥的人来解密!!!!也就是说只能由一个人或者一个组织来解密。

        只是, 这种非对称加密有一个缺点, 就是运行速度非常慢。

数据摘要 

        数据摘要就是将原本的数据, 转化成固定长度的, 有极低概率发生冲突的字符串。这种字符串具有唯一性。这种数据摘要技术是一种Hash算法,最典型的就是MD5。
        未来我们对一个数据如果一开始形成的数据摘要是一串字符串md_str:XXXXXXXXXXX。
        然后如果这个数据被改了一个很小的字符,那么新形成的字符串就会和原本字符串相差非常大,假如是:md _str:YYYYYYYYYYYYYYY。所以想要判断这个字符串是否被修改过, 只需要判断一下这两个数据摘要是否相同。
        形成的这个字符串,我们就叫做数据指纹。未来我们的登录密码和账号, 是不是任意两个用户, 都不可能完全相同。通常情况下, 账号就一定不能够相同。这个就是用到了数据指纹。 

        另一个用到数据摘要的例子就是我们上传文件, 我们有时候上传文件, 是不是第一次上传的时候有时候很慢, 但是第二次上传就非常快。 就是因为我们第一次上传文件时数据指纹已经入库, 第二次上传同样的文件会发现文件有相同的数据指纹, 这个时候就直接不用重新上传了, 直接根据数据指纹找到上次上传的文件在服务器里面的位置, 然后用一个软连接指向就行了。

——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/66787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安科瑞 Acrel-1000DP 分布式光伏监控系统在工业厂房分布式光伏发电项目中的应用

吕梦怡 18706162527 摘 要:常规能源以煤、石油、天然气为主,不仅资源有限,而且会造成严重的大气污染,开发清洁的可再生能源已经成为当今发展的重要任务,“节能优先,效率为本”的分布式发电能源符合社会发…

视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp

文章链接:https://arxiv.org/pdf/2412.19761 项目链接:https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题,目标是利用 I2V 模型的生成能力,将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…

年度技术突破奖|中兴微电子引领汽车芯片新变革

随着以中央计算区域控制为代表的新一代整车电子架构逐步成为行业主流,车企在电动化与智能化之后,正迎来以架构创新为核心的新一轮技术竞争。中央计算SoC,作为支撑智驾和智舱高算力需求的核心组件,已成为汽车电子市场的重要新增量。…

后门原理与实践

实验目录 windows主机与kali虚拟机实现互联互通使用netcat获取主机操作Shell,cron启动使用socat获取主机操作Shell, 任务计划启动使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell使用MSF meterpreter生成获取目标主机…

Apache Hop从入门到精通 第一课 揭开Apache Hop神秘面纱

一、Apache Hop是什么? 1、Apache Hop,简称Hop,全称为Hop Orchestration Platform,即Hop 工作编排平台,是一个数据编排和数据工程平台,旨在促进数据和元数据编排的所有方面。Hop让你专注于你想要解决的问题…

嵌入式C语言:什么是指针?

目录 一、指针的基本概念 1.1. 定义指针 1.2. 赋值给指针 1.3. 解引用指针 1.4. 指针运算 1.5. 空指针 1.6. 函数参数 1.7. 数组和指针 1.8. 示例代码 二、指针在内存中的表示 2.1. 内存地址存储 2.2. 内存模型 2.3. 指针与硬件交互 2.4. 示例代码 三 、指针的重…

带格式 pdf 翻译

支持 openAI 接口,国内 deepseek 接口兼容 openAI 接口, deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate

【redis初阶】初识Redis

目录 一、初识Redis 二、盛赞 Redis 三、Redis 特性 3.1 速度快 ​编辑3.2 基于键值对的数据结构服务器 3.3 丰富的功能 3.4 简单稳定 🐶 3.6 持久化(Persistence) 3.7 主从复制(Replication) 3.8 高可用(H…

虚拟机Linux Red Hat 7.9 Docker部署.Net 7 Zr.Admin项目(后端)

0、环境信息 应用部署在虚拟机里的docker,里面的应用访问宿主主机的MySQL 1、开启MySQL远程访问 使用非安装版MySQL参考Windows 使用 非安装版MySQL 8 为了避免出现 Host is not allowed to connect to this MySQL server 使用root用户登录 cmd进入到MySQL的bi…

UE小白学习日记

Level UE中的Level(关卡)和Unity中的Scene(场景)在概念和用途上非常相似,都是用来组织和管理3D环境的基本单位。让我为您详细对比一下: 相似之处: 它们都是游戏世界的容器,可以包含游戏对象、光照、地形等元素都支持场景/关卡的切换和加载都可以用来划分游戏内容,比如不同关…

cmake - build MS STL project

文章目录 cmake - build MS STL project概述笔记END cmake - build MS STL project 概述 MS在github上开源了VS IDE 用的STL实现。 想看看微软的测试用例中怎么用STL. 想先用CMake编译一个MS STL发布版出来。 笔记 CMake需要3.30以上, 拟采用 cmake-3.30.6-windows-x86_64.…

微信小程序之历史上的今天

微信小程序之历史上的今天 需求描述 今天我们再来做一个小程序,主要是搜索历史上的今天发生了哪些大事,结果如下 当天的历史事件或者根据事件选择的历史事件的列表: 点击某个详细的历史事件以后看到详细信息: API申请和小程序…

错误修改系列---基于RNN模型的心脏病预测(pytorch实现)

前言 前几天发布了pytorch实现,TensorFlow实现为:基于RNN模型的心脏病预测(tensorflow实现),但是一处繁琐地方 一处错误,这篇文章进行修改,修改效果还是好了不少;源文章为:基于RNN模型的心脏病…

vue.js+vite搭建一个简单的新春祈福活动网站

vue.jsvite搭建一个简单的新春祈福活动网站&#xff01;使用canvas技术&#xff0c;绘制视觉特效。 功能有&#xff1a;燃放烟花&#xff0c;和撞钟祈福。祈福撞钟我设计了是按钮事件&#xff0c;播放一个mp4动画&#xff0c;配上播放一段撞钟的生效文件mp3. <template>&…

有机物谱图信息的速查技巧有哪些?

谱图信息是化学家解读分子世界的“语言”&#xff0c;它们在化学研究的各个领域都发挥着不可或缺的作用。它们是理解和确定分子结构的关键&#xff0c;对化学家来说极为重要&#xff0c;每一种谱学技术都提供了不同的视角来观察分子&#xff0c;从而揭示其独特的化学和物理特性…

视频转码对画质有影响吗?视频融合平台EasyCVR支持哪些转码格式?

视频转码过程是将视频文件从一种编码格式转换为另一种格式的过程&#xff0c;这一过程在现代数字媒体中扮演着至关重要的角色。众所周知&#xff0c;视频转码不仅仅是简单的格式转换&#xff0c;它涉及多个关键参数的改变&#xff0c;例如视频编码格式、比特率、分辨率以及帧率…

微信小程序防止重复点击事件

直接写在app.wpy里面&#xff0c;全局可以调用 // 防止重复点击事件preventActive(fn) {const self this;if (this.globalData.PageActive) {this.globalData.PageActive false;if (fn) fn();setTimeout(() > {self.globalData.PageActive true;}, 3000); //设置该时间内…

STM32-WWDG/IWDG看门狗

WWDG/IWDG一旦开启不能关闭&#xff0c;可通过选项字节在上电时启动硬件看门狗&#xff0c;看门狗计数只能写入不能读取。看门狗启用时&#xff0c;T6bit必须置1&#xff0c;防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗&#xff08;重置计数器&#xff0c;…

C++初阶—CC++内存管理

第一章&#xff1a;C/C内存分布 int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)malloc(si…

排序的本质、数据类型及算法选择

排序的本质、数据类型及算法选择 一、排序的本质二、排序的数据类型三、排序算法的选择依据 前两天老金写了篇 “十大排序简介”&#xff0c;有点意犹未尽&#xff0c;这一回老金想把排序连根拔起&#xff0c;从排序的本质说道说道。 一、排序的本质 从字面上理解&#xff0c…