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

【Pandas】pandas Series rdiv

Pandas2.2 Series Binary operator functions 方法描述Series.add()用于对两个 Series 进行逐元素加法运算Series.sub()用于对两个 Series 进行逐元素减法运算Series.mul()用于对两个 Series 进行逐元素乘法运算Series.div()用于对两个 Series 进行逐元素除法运算Series.true…

计算机网络之---应用层协议概述

应用层协议概述 应用层协议是OSI模型中的第7层(应用层)定义的一组规则,用于支持和管理不同应用程序之间的通信。应用层协议定义了数据交换的格式、规则和约定,使得不同的系统或应用能够互相理解并正确地交换数据。它直接面向用户并…

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

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

《解锁鸿蒙系统AI能力,开启智能应用开发新时代》

在当今科技飞速发展的时代,鸿蒙系统以其独特的分布式架构和强大的AI能力,为开发者们带来了前所未有的机遇。本文将深入探讨开发者如何利用鸿蒙系统的AI能力开发更智能的应用,开启智能应用开发的新时代。 鸿蒙系统构筑了15系统级的AI能力&…

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

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

docker 启动 nacos 单机模式

docker 启动 nacos 单机模式 # 拉取镜像# 启动,如果不拉镜像会自动拉取最新的 image docker run --name standalong_nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODEstandalone -d nacos/nacos-server# 状态查看外部访问验证 输入部署的 docker ip 地址以及…

pandas处理json的相关操作

Pandas 是一个强大的数据处理库,它提供了丰富的功能来处理 JSON 数据。以下是 Pandas 中处理 JSON 的所有常见操作: 1. 读取 JSON 文件 使用 pandas.read_json() 函数可以从 JSON 文件或 JSON 字符串中读取数据。 从 JSON 文件读取 import pandas as …

后门原理与实践

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

halcon3d 如何计算平面法向量!确实很简单

这个问题其实一直困扰了我很长时间,之前是怎么算的呢 对于一个平面,我会先求它的fit_primitives_object_model_3d去将它拟合,接下来用surface_normals_object_model_3d 算子生成它的法线,后用get_object_model_3d_params (ObjectModel3DNormals, ‘point_normal_x’, GenP…

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

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

Kafka集群安装

Apache kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,是消息中间件的一种,用于构建实时数据管道和流应用程序。 Kafka官网:http://kafka.apache.org/ 安装环境: Kafka集群环境搭建,依赖于zookeep…

嵌入式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

单片机实物成品-011 火灾监测

火灾监测(20个版本) 版本20: oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…

【redis初阶】初识Redis

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

数据库事务:确保数据一致性的关键机制

1. 什么是数据库事务 定义:事务(Transaction)是数据库管理系统中的一个逻辑工作单元,用于确保一组相关操作要么全部成功执行,要么全部不执行,从而维护数据的一致性和完整性。重要性:在多用户环…

CSS鼠标悬浮及其样式

在CSS中,鼠标悬浮(hover)是一种常见的交互效果。当用户将鼠标指针悬停在某个元素上时,CSS :hover 伪类可以用来定义该元素的样式变化。常用于按钮、链接、图片、列表项等元素的交互效果。 1. 基础语法 element:hover { /* 定义悬…

3354. 使数组元素等于零

3354、[简单] 使数组元素等于零 1、题目描述 给你一个整数数组 nums 。 开始时,选择一个满足 nums[curr] 0 的起始位置 curr ,并选择一个移动 方向 :向左或者向右。 此后,你需要重复下面的过程: 如果 curr 超过范…

虚拟机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…