https介绍,加密解密(举例+必要性,对称/非对称加密介绍),数字摘要/指纹(介绍,应用(session id,网盘的秒传功能))

目录

https

引入

介绍

加密解密层

介绍

没有绝对的安全

使用ssl的弊端

加密解密

概念

加密

解密

秘钥

举例

现实中

网络中

加密的必要性

常见加密方式

对称加密

特点

非对称加密

特点

数字摘要/指纹

介绍

应用

session id

百度网盘的秒传功能


https

这里对https的介绍更偏向于数据安全的方面

以及,明确http协议是明文传输协议

引入

用户输入的数据会随着http请求/响应在两台主机中传递

下面是一个精简的osi模型:

  • 虽然目标主机确实能收到数据,但传输过程中也会有其他主机可以收到,这样就会涉及数据泄漏的问题
  • 并且,因为这里画出来的下三层是在os里的,os并不会对数据做加密处理,它只管传过去

所以,我们需要在应用层添加一层软件层,给数据套个壳子 -- 加密解密层

介绍

当然,不止一台主机上有,目标主机上也得有:

这样数据经过本主机的加密,经过目标主机的解密,可以实现:

  • 传输过程中是加密数据
  • 目标主机最终得到的是有效数据

http + 加密解密层  = https

  • 所以,https其实就是http的安全版本,它在http的基础上添加了安全性和加密

加密解密层

介绍
  • 一般是使用现成的方案ssl
  • 当然也可以自定义,但这样维护的工作就得自己来做
没有绝对的安全

其实,无论是什么协议,都不是百分百安全的

  • 随着算力的提升,攻击者可能会找到新的方法来破解加密算法或者利用系统的漏洞
  • 所以,这些协议需要不断更新迭代

我们可以把 攻破成本>攻破后的收益 的网络协议称为是相对安全

使用ssl的弊端

因为ssl过于权威,使用的人多,去试图攻破它的人也多,过一段时间ssl就会暴露出一些问题,就迫使ssl推出新版本

所以,如果使用的是旧版本的ssl,很可能就直接被攻破了

加密解密

概念

加密

将原始数据(称为明文)转换为经过特定算法处理的密文的过程

  • 在加密过程中,使用密钥来控制算法的行为,以确保生成的密文具有一定的安全性
  • 即只有持有正确密钥的人才能解密并访问原始数据

解密

将密文转换回原始的明文的过程

  • 解密过程需要正确的密钥,以便算法能够逆向处理密文并还原出原始数据

秘钥

在加密解密过程中起关键作用的参数,用于控制加密算法的行为

  • 也叫做 明文<->密文中间数据
  • 密钥可以是对称密钥或非对称密钥(在下面的加密方式中会介绍)

举例

我们用具体例子来说明这些概念

现实中

比如说在综艺极限挑战里,男人帮曾经就做过解密:

  • 把所听内容写在信纸上,然后根据另一张画了框框的纸,找到要传递的信息
  • 明文 -- 实际想要传递的信息
  • 密文 -- 信纸上所写内容
  • 秘钥 -- 一张画了框的纸(和扣了洞的纸作用一样)

网络中

我们假设要传递的数据都是数字,然后我们对它进行异或,在另一端再通过异或拿到有效数据

  • 明文 -- 3
  • 密文 -- 3^5
  • 秘钥 -- ^5(这个秘钥就属于等会介绍的对称密钥)

说了这么多,我们到底为什么要进行加密呢?

加密的必要性

所有的数据包都会经过运营商的网络设备

  • 因为我们使用的网络都是运营商提供的(移动,联通,电信等等)

如果使用的是http协议,那运营商很轻易地就能得到我们的请求和响应内容,并且做出修改

  • 比如:当我们下载某软件时,会向服务器发送http请求,然后服务器返回下载链接
  • 当运营商拿到响应时(也叫做劫持),可以篡改下载链接,然后将篡改后的响应返回给客户端
  • 如下图:
  • 这样就无法保证我们拿到的链接是安全的,很可能被恶意篡改

不止运营商能拿到,传输过程中经过的每一个设备都可以拿到

  • 比如路由器

甚至,如果连接了免费wifi,其他人的设备就可以获取到你的请求信息

  • 如果这个网络是钓鱼网络,而你的网络行为都需要经过这个设备,那么你的数据就被泄露了

如果手机开了热点,然后电脑连接这个网络

  • 你的手机也就可以获取到电脑的请求数据(只是提一嘴哈)

以上都体现出数据加密的必要性

  • 试想一下,如果支付宝等支付软件使用的是http协议
  • 那就很容易可以获取到用户的登录信息,甚至支付密码,进而转走里面的钱

常见加密方式

对称加密

加密和解密使用的秘钥是同一个

特点
  • 加密速度快,效率高

非对称加密

加密和解密过程中使用的秘钥不同

  • 并且,这两个秘钥是相互对应的,也就是加密解密过程是可逆的
  • 用A加密,就用B解密 ; 如果用B加密,就用A解密

一般把其中一个秘钥公开

  • 当然一个公开了,另一个是绝对不能公开的
  • 我们把公开的秘钥叫做公钥,未公开的秘钥叫做私钥
  • 这种方式可以保证 -- 如果用公钥加密,就只有拥有私钥的人/组织才能解密
特点

相比对称加密,计算量大,速度较慢

数字摘要/指纹

介绍

利用hash算法处理数据,生成固定长度的数字摘要,具有唯一性

  • 很小很小的概率会发生冲突

它并不用来加密,而是用来判断数据是否被篡改 

  • 它只能实现从左到右的过程(也就是加密),但不可逆(也就是无法解密),所以并不属于加密手段
  • 只要数据有一点点不同(哪怕只是一个符号),生成的数字摘要就有明显差异
  • 是不是就和指纹识别类似,只要有一点不同,就不是同一个人

最典型的算法

  • MD5

应用

session id

一个网站是不允许它存储的用户信息里有完全相同的数据的(用户名和密码),不然他们不就是同一个人了吗

  • 所以,服务器内部存放的用户数据都是不同的
  • 那么,经过md5运算后的字符串一定是不一样的
  • 所以我们可以把这串字符串作为set-cookie的填充数据返回给客户端
  • 然后客户端可以拿着这个字符串在服务器中进行信息匹配(因为它具有唯一性),并且可以保证数据的私密性(相当于经过了加密,并且只有在服务器内部才能解密)

是不是很熟悉,其实这串字符串就是session id

  • session id就相当于是客户端访问服务器时的指纹信息
百度网盘的秒传功能

如果多个用户上传同样的资源,服务器会把这份资源存储多份吗?

  • 不会的
  • 存储多份一样的资源完全是浪费空间

所以,一般会在上传前先将资源转换成数字摘要,然后上传到服务器进行匹配

  • 如果内部匹配到了,意味着上传的文件与已存在的文件内容完全相同,就直接返回已有资源的软链接即可(这也就达到了秒传的效果)
  • 如果匹配不上,则说明内部没有该文件,这时再进行上传流程就好了

在某些场景下,摘要也是需要加密的,加密后就得到了数字签名

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构课程学习】:队列学习

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;数据结构课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f697; 1.队列的基本概念&#xff1a…

xCode升级后: Library ‘iconv2.4.0’ not found

报错信息&#xff1a; targets 选中 xxxNotification: Build Phases ——> Link Binary With Libraries 中&#xff0c;移除 libiconv.2.4.0.tbd libiconv.2.4.0.dylib 这两个库&#xff08;只有一个的移除一个就好&#xff09;。 然后重新添加 libiconv.tbd 修改完…

开发者集结号:大湾区 Open Source Day 邀您共探技术前沿

开源技术正以其开放、协作的特性&#xff0c;引领着软件开发的新潮流&#xff0c;是推动社会进步的重要力量。作为开发者&#xff0c;您是否渴望深入了解开源项目的前沿动态&#xff1f;由ALC深圳与2024中国互联网发展创新与投资大赛联合举办、FISCO金链盟深度参与的大湾区 Ope…

第五十二周:文献阅读+STHTNN

目录 摘要 Abstract 文献阅读&#xff1a;用于区域空气质量预测的时空分层传输神经网络 现有问题 提出方法 创新点 方法论 周期特征提取组件(PFEC) 场景动态图模块(SDGM) 时空特征提取组件&#xff08;STEC) 传输注意力模块(TransATT) STHTNN模型 研究实验 数据集…

基于微信小程序的预约挂号系统(源码)

博主介绍&#xff1a;✌程序员徐师兄、10年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

AI算法-高数5.1-线性代数-向量定义、表示和向量间的关系

看线性代数这篇文章&#xff08;AI算法-高数5-线性代数1-基本概念、向量-CSDN博客&#xff09;理解有些吃力的朋友们&#xff0c;可以先学下宋浩老师的这些课程。 宋浩老师&#xff1a; 3.1 n维向量及其运算_哔哩哔哩_bilibili 3.2 向量间的线性关系&#xff08;一&#xff…

程序员如何避免35岁危机?

所谓的“35岁危机”通常是指在职业生涯中遇到的一个挑战阶段&#xff0c;这个概念在不同行业和个人中有不同的体现。对于程序员来说&#xff0c;这可能与技术更新迅速、工作强度大、职业发展路径的不确定性等因素有关。 以下是一些建议&#xff0c;帮助程序员避免或缓解这一危机…

HTML5实现简洁好看的个人主页,个人小站(多种风格附源码)

文章目录 1.烟灰主题个人主页1.1 个人主页界面1.2 个人信息界面1.3 兴趣爱好界面1.4 个人作品界面 2.紫霞主题个人主页2.1 个人主页界面2.2 个人信息界面2.3 兴趣爱好界面2.4 个人作品界面 3.墨夜主题个人主页3.1 个人主页界面3.2 个人信息界面3.3 兴趣爱好界面3.4 个人作品界面…

把3D模型加载到网页上需要什么技术?

要将3D模型加载到网页上并实现交互展示需求&#xff08;比如点击模型弹出一个窗口或控制模型的材质等&#xff09;&#xff0c;可以使用以下几种技术&#xff1a; 1、Three.js&#xff1a;这是一个非常流行的JavaScript库&#xff0c;用于在网页上渲染和显示3D图形。它支持多种…

Python-VBA函数之旅-super函数

目录 一、super函数的常见应用场景 二、super函数使用注意事项 三、如何用好super函数&#xff1f; 1、super函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、su…

【Linux系统编程】第十七弹---进程理解

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程的基本概念 2、描述进程-PCB 2.1、什么是PCB 2.2、为什么要有PCB 3、task_ struct 3.1、启动进程 3.2、创建进程…

Redis五大基本数据类型介绍及其使用场景

文章目录 1 String&#xff08;字符串&#xff09;应用场景 2 List&#xff08;列表&#xff09;应用场景 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合&#xff09;应用场景 5 hash&#xff08;哈希&#xff09;应用场景 Redis 是一个开源&#xff0c;…

2D已经不能满足可视化大屏胃口了,不搞3D都不好意思出门打招呼。

相较于2D形式&#xff0c;3D形式在可视化大屏有很多优势 深度感和逼真度&#xff1a; 3D形式可以通过透视和阴影效果给人以更真实的感觉&#xff0c;增加了可视化数据的深度感&#xff0c;使数据更加生动和具有立体感。 空间关系的展示&#xff1a; 3D形式可以更好地展示数据…

WMS系统批次管理概述

为了提高仓库运作效率&#xff0c;降低库存成本&#xff0c;越来越多的企业开始引入WMS仓库管理系统&#xff0c;WMS系统批次管理作为其核心功能之一&#xff0c;对于实现精细化、智能化的仓储管理具有重要意义。 二、WMS系统批次管理概述 WMS系统批次管理是指通过对仓库中的货…

点阵字库介绍

1、点阵字库介绍 首先需要理解的是点阵字库是一个数据文件,在这个数据文件里面保存了所有文字的点阵数据.至于什么是点阵,我想我不讲大家都知道 的,使用过"文曲星"之类的电子辞典吧,那个的液晶显示器上面显示的汉子就能够明显的看出"点阵"的痕迹.在 PC 机…

开散列哈希桶

通过上面这幅图&#xff0c;读者应该能较为直观地理解何为开散列&#xff0c;以及闭散列与开散列的区别在哪里 —— 数据的存储形式不同&#xff0c;至于其他的&#xff0c;如确定每个元素的哈希地址等一概相同。 与闭散列相比&#xff0c;开散列能够更好地处理发生冲突的元素 …

【网站项目】SpringBoot792考试系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

css背景图片,在不同的分辨率下,显示不全

问题背景 今天遇到一个很奇怪的问题&#xff0c;css背景图&#xff0c;在同事电脑上&#xff0c;显示不全 正常应该是这样的 分析原因 首先我们来看下之前的代码 .dtc-logo{width 91pxmin-width 91pxheight 55pxbackground url(https://xxxx/image/xxxx.png)background-size…

MySQL————创建存储过程函数

存储过程使用大纲 有参数传递 delimiter $$ 声明一个名称为get_student_introduce create procedure add_student_infor( in p_userName VARCHAR(20),in p_phone VARCHAR(11),in p_sex char(2),in p_introduce VARCHAR(255)) 开始操作 BEGIN 撰写真正在操作DMLDQL都行 INSE…

NL6621 WIFI模块烧录及其他

某宝淘得NL6621: 测了一下引脚&#xff1a; 做了以下功课&#xff1a; 新岸线物联网NL6621解决方案是高性价比、完全开源、高成熟度的解决方案&#xff0c;特别为高数据吞吐率低成本的无线局域网产品而设计。它集成了MCU&#xff0c; MAC&#xff0c;1T1R基带和带功放RF收发机于…