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

news2024/10/7 14:34:06

目录

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.coloradmin.cn/o/1659428.html

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

相关文章

设备能耗数据在线监测

在追求可持续发展和绿色经济的当下&#xff0c;企业对于设备能耗的管理愈发重视。设备能耗数据在线监测&#xff0c;不仅能帮助企业实时掌握设备的运行状况&#xff0c;还能为企业节能减排、降低运营成本提供有力支持。HiWoo Cloud平台凭借其先进的技术和丰富的经验&#xff0c…

qt操作硬件(以imx6ull为例)

下面用imx6ull的qt点灯说明&#xff0c;这里要使用c&#xff0c;c混合编程 一、完成ui界面位置 构造一个这样的简单界面即可&#xff0c;主要是实现open和close的槽函数即可。我这里分别把两个按钮改名为为openbt closebt了 二、实现逻辑功能 2.1完成led类创建 在主文件夹le…

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤&#xff08;裸光纤&#xff09;由运营商提供&#xff0c;是无中继的光纤线路&#xff0c;仅通过配线架连接。相比传统光纤&#xff0c;裸光纤提供纯粹的物理传输路径&#xff0c;无需额外网…

【C++】类与对象(类章节)

面向过程和面向对象 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完 成。 一、类 1.类…

OpenBayes 一周速览|Apple 开源大模型 OpenELM 上线;字节发布 COCONut 首个全景图像分割数据集,入选 CVPR2024

公共资源速递 This Weekly Snapshots &#xff01; 5 个数据集&#xff1a; * COCONut 大规模图像分割数据集 * THUCNews 新闻数据集 * DuConv 对话数据集 * 安徽电信知道问答数据集 * Sentiment Analysis 中文情感分析数据集 2 个模型&#xff1a; * OpenELM-3B-Inst…

面试笔记——类加载器

基础 类加载器&#xff1a;用于装载字节码文件(.class文件)运行时数据区&#xff1a;用于分配存储空间执行引擎&#xff1a;执行字节码文件或本地方法垃圾回收器&#xff1a;用于对JVM中的垃圾内容进行回收 类加载器 &#xff1a;JVM只会运行二进制文件&#xff0c;类加载器的…

Python入门系列-02 pip的安装

目录 一、pip介绍二、pip安装检查三、pip安装 一、pip介绍 pip 是 Python 包管理工具&#xff0c;该工具提供了对Python 包的查找、下载、安装、卸载的功能。 二、pip安装检查 你可以通过以下命令来判断是否已安装。 pip --version # Python2.x 版本命令 pip3 --versio…

uniapp——弹出键盘遮挡住输入框 textarea,处理方法

案例 在写输入框的时候会遇见 键盘遮挡住部分textarea框的一部分&#xff0c;使用cursor-spacing处理即可 修改后&#xff1a; 其他问题&#xff1a; 调起键盘输入时&#xff0c;不希望上方的内容被顶上去 代码 <view class"commentBox" :style"botto…

蓝桥杯EDA常见电路原理图设计和分析

目录 前言 一、常见器件及其作用 二、原理图设计题目 1.蜂鸣器原理图 2.LCD背光控制电路 3.参考电压源 4.低通滤波器电路设计 5.5-3.3电源转换电路 6.3.3V-VDD_EXT电平转换电路 7.DS18B20原理图 8.供电输出控制接口电路 9.电源检测接口电路 10.USB转串口电路 三、…

微信小程序原生组件使用

1、video组件使用 <view class"live-video"><video id"myVideo" src"{{videoSrc}}" bindplay"onPlay" bindfullscreenchange"fullScreenChange" controls object- fit"contain"> </video&g…

每日两题 / 104. 二叉树的最大深度 102. 二叉树的层序遍历(LeetCode热题100)

104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归判断&#xff0c;当前节点的最大深度为1 max(左节点的最大深度&#xff0c;右节点的最大深度) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* …

PowerPhotos for Mac:您的照片管理助手

PowerPhotos for Mac&#xff0c;作为一款专业的照片管理软件&#xff0c;为用户提供了全方位的照片管理解决方案。从照片的导入、整理到查找、编辑&#xff0c;PowerPhotos都能为您提供便捷的操作体验。 首先&#xff0c;PowerPhotos支持多库管理&#xff0c;用户可以根据需要…

Spark云计算平台Databricks使用,第一个scala程序

1) 创建Spark计算集群 Spark云计算平台Databricks使用&#xff0c;创建workspace和cluster-CSDN博客 2) 创建notebook Workspace -> Users&#xff0c;选择用户&#xff0c;点击Create -> Notebook 选择集群&#xff0c;可以修改notebook名字 修改了notebook名字 选择S…

triton之语法学习

一 基本语法 1 torch中tensor的声明 x = torch.tensor([[1,2, 1, 1, 1, 1, 1, 1],[2,2,2,2,2,2,2,2]],device=cuda) 声明的时候有的时候需要指出数据的类型,不然在kernel中数据类型无法匹配 x = torch.tensor([1,2,1,1,1,1,1,1],dtype = torch.int32,device=cuda) 2 idx id…

关于冯诺依曼体系结构 和 操作系统(Operator System)的概念讲解(冯诺依曼体系结构,操作系统的作用等)

目录 一、冯诺依曼体系结构 二、操作系统 1. 概念 2. 设计操作系统的目的 3.系统调用和库函数概念 4.总结 三、完结撒❀ 一、冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系。 截…

酷开科技AI技术支持,酷开系统根据你的喜好量身定制节目

在当今数字化时代&#xff0c;个性化推荐已成为提升消费者体验的关键因素。酷开科技的智慧AI&#xff0c;为消费者提供了精彩的内容推荐服务&#xff0c;更大地丰富了消费者的娱乐生活。 酷开系统中的AI推荐引擎通过学习消费者的观看习惯和偏好&#xff0c;能够快速识别其兴趣…

idea java 后缀补全

ArrayList<$EXPR$> enters new ArrayList<>();for (int i 0; i < enters.size(); i) {$EXPR$ enter enters.get(i);enter$END$} 让编程效率翻倍的IDEA快捷键—自定义后缀补全_哔哩哔哩_bilibili

Navicat 干货 | 探索 PostgreSQL 中不同类型的约束

PostgreSQL 的一个重要特性之一是能够对数据实施各种约束&#xff0c;以确保数据完整性和可靠性。今天的文章中&#xff0c;我们将概述 PostgreSQL 的各种约束类型并结合免费的 "dvdrental" 示例数据库 中的例子探索他们的使用方法。 1. 检查约束&#xff1a; 检查…

winform图书销售管理系统+mysql

winform图书销售管理系统mysql数据库说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 功能模块&#xff1a; 管理员:ttt 123 登陆可以操作我的 个人信息 修改密码 用户信息 添加删除用户 图书 添加删除图书信息 购物车 购买订单信息 充值 退出账户 …

JavaScript中的深拷贝与浅拷贝详解

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f4da; 引言❓什么是拷贝&#x1f31f; 浅拷贝&#xff1a;表面功夫浅拷贝常用方法1. 扩展运算符 (...)2. Object.assign()3. 手动遍历对象属性 &#x1f320; 深拷贝&#xff1a;彻底分离深拷贝常用方法1. Lodash 的…