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就相当于是客户端访问服务器时的指纹信息
百度网盘的秒传功能

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

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

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

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

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

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

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

相关文章

21_Scala集合_可变数组ArrayBuffer

文章目录 ArrayBuffer1.创建可变数组ArrayBuffer2.增加数据3.删除数据4.修改数据5.查询数据Appendix ArrayBuffer ArrayBuffer可变数组–感觉优点类似于Java的ArrayList 1.创建可变数组ArrayBuffer –请注意下面的mutable import scala.collection.mutable.ArrayBuffer //m…

DuDuTalk:4G桌面拾音设备在银行网点服务场景的应用价值

随着科技的飞速发展&#xff0c;银行业也在不断地寻求创新以提高服务质量和效率。在这个过程中&#xff0c;4G桌面拾音设备作为一种新型的智能设备&#xff0c;其在银行网点服务场景中的应用价值逐渐凸显出来。本文将从多个角度探讨4G桌面拾音设备在银行网点服务场景的应用价值…

英语学习笔记6——What make is it?

What make is it? 它是什么牌子的&#xff1f; make n.&#xff08;产品的&#xff09;品牌名称    v. 制作 区别&#xff1a;model n.&#xff08;产品的&#xff09;型号       n. 模型       n. 模特 make 指的是大的品牌名称&#xff0c; model 是旗下产品…

MapReduce原理

MapReduce 的实际处理过程可以分解为 Input、Map、Sort(排序)、Combine(局部合并)、Partition(分区)、Reduce(全局聚合)、Output 等阶段。 1 MapReduce的作用 化大为小、分而治之2 Map和Reduce阶段的作用 Map阶段: 把输入变成(Key,Value)结果,用于reduce阶段的输入.(结果局…

专业习惯:拥有好习惯,让自己少走弯路

小细节决定成败&#xff0c;小习惯决定未来。也许读者对于做IT产品缺乏深度与广度的应用认知&#xff0c;不能完全理解&#xff0c;这没有关系。跟着博主的节奏来&#xff0c;随着理论结合实践的深入学习&#xff0c;你会越来越明白的。 俗话说&#xff0c;”有志不在年高&…

Js地图路线规划以及点击获取经纬度

废话不多说&#xff0c;直接上代码。 代码script引用链接链接来自高德地图开放平台。&#xff08;高德开放平台 | 高德地图API (amap.com)&#xff09; <!doctype html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-…

OpenHarmony 实战开发——南向统一编译的docker镜像来了

由于我自己的南向设备开发平台的需求&#xff0c;我将当前几个不同的 docker 镜像版本进行了整合&#xff0c;经过一段时间的攻关和验证&#xff0c;目前整合已完成&#xff0c;新版本的 Dockerfile 如下&#xff0c;这个不是公共需求&#xff0c;所以没有提交主干&#xff0c;…

std::lock_guard和std::unique_lock的差别

std::lock_guard 和 std::unique_lock 都是 C 标准库 <mutex> 中提供的用于管理互斥体&#xff08;mutex&#xff09;的 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;风格的类。它们的主要目标都是确保互斥体在适当的时候被锁定和解锁&#xff0…

Web APIs 学习归纳8---移动端特效

上一节学习了PC端的特效&#xff0c;现在学习移动端的特效。 一、移动端触屏事件 1.1 触屏事件概述 移动端浏览器兼容性较好&#xff0c;我们不需要考虑以前 JS 的兼容性问题&#xff0c;可以放心的使用原生 JS 书写效果&#xff0c;但是移动 端也有自己独特的地方。比如触屏…

Go语言函数

在Go语言中&#xff0c;函数是一种基本的构建块&#xff0c;用于组织代码并执行特定任务。它们是可重复使用的代码段&#xff0c;可以接收输入参数&#xff0c;执行一系列操作&#xff0c;并可返回结果。以下是Go语言中函数的详细介绍及其使用方法&#xff1a; 基本语法 Go语…

让新手变中手的ChatGPT 使用方法

让新手变中手的ChatGPT 使用方法 已经要一年了,没想到这篇还是一样有用。看到许多依然是一句话就要问出结果的教学,就知道AI 进步很快,但人的学习速度还需要更多时间。 以下为去年原版内容加上新的两招更新,希望帮助你使用ChatGPT 更好用,当未来文字可直接生成影像时,你…

容联云孔淼:大模型落地与全域营销中台建设

近日&#xff0c;由金科创新社主办的2024区域性商业银行数智化转型研讨会顺利召开&#xff0c; 容联云产业数字云事业群副总经理、诸葛智能创始人孔淼受邀出席&#xff0c;并分享数智化转型实践经验。 他分享了容联云两大核心产品&#xff0c;“大模型应用容犀Copilot”在金融营…

TypeScript 基础学习笔记:interface 与 type 的异同

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 TypeScript 学习笔记&#xff1a;interface 与 type 的异同&#x1f3a3; 引言&#x1f680; 快速入门1️⃣ Interface&#xff08;接口&#xff09;&#x1f4cb; 定义&#x1f91d; 实现&#x1f4a1; 特点 2️⃣ Type Al…

Android 高版本实现沉浸式状态栏

目前实现的android高版本沉浸式状态栏分为两类&#xff1a; 1、是纯透明状态栏&#xff1b; 2、是纯透明状态栏&#xff0c;但是状态栏字体是黑色&#xff1b; 将状态栏的代码封装到BaseActivity中更方便使用&#xff1a; BaseActivity: public abstract class BaseActivit…

如何在Linux中安装Docker Compose

下载安装 在Linux中安装Docker Compose相对简单&#xff0c;你可以按照以下步骤进行 确保Docker已经安装   Docker Compose需要在系统上安装了Docker才能正常工作。如果你的系统上还没有安装Docker&#xff0c;请先安装Docker。 下载Docker Compose   你可以从Docker官方Gi…

记录HCIP学习过程中的疑问

1、查看协议路由表、本地核心路由表、FIB表的命令&#xff1f;&#xff1f;&#xff1f; 查看FIB表&#xff1a;display fib [ slot-id ] 2、最优路由选择&#xff0c;当达到目的地址的路由有多条时&#xff0c;本地核心路由 与FIB表的情况&#xff1f;&#xff1f;&#xf…

代码随想录算法训练营第四十四天

sad的一天&#xff0c;明天开始上班&#xff0c;而且娃还行&#xff0c;媳妇儿状态不稳定&#xff0c;太难了也&#xff01;&#xff01;&#xff01; 完全背包 #include<vector> #include<iostream> using namespace::std; int main(){int N;//种类int V;//空间ci…

AI一键换装超强电商生产力工具下载

支持win版本&#xff0c;对电脑硬件有一定的要求。建议固态硬盘留足至少30 G的空间&#xff0c;显卡n卡显存至少4G。一些低端独立显卡可能还不如高配cpu集成。 程序文件比较大&#xff0c;因为涉及到大型模型。 下载链接在后面 下载链接&#xff1a; https://pan.baidu.com…

【Linux】如何定位客户端程序的问题

文章目录 1 客户端程序和服务端程序的差别2 问题类型2.1 崩溃(crash)2.2 CPU高2.3 内存高2.4 线程卡死 3 总结 1 客户端程序和服务端程序的差别 客户端程序是运行在终端上&#xff0c;通常都会与业务系统共存&#xff0c;而服务端程序通常会运行在单独的节点上&#xff0c;或者…

怎麼檢測線上代理IP是否生效?

代理IP在保護網路隱私、繞過地理限制、提高網路安全等方面發揮著重要的作用。使用代理IP時&#xff0c;經常會涉及到一個問題&#xff1a;如何確定代理IP是否生效&#xff1f;在這篇文章中&#xff0c;我們將詳細討論幾種檢測線上代理IP是否生效的方法。 一、使用線上代理檢測…