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 是旗下产品…

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

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

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

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

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

近日&#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…

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;或者…

Shell编程之条件语句与case语句

目录 1.条件测试 1.1 文件测试 1.2 整数测试 1.3 字符串测试 1.4 逻辑测试 2.if语句 2.1 单分支if语句 2.2 双分支if语句 2.3 多分支if语句 3.case分支语句 1.条件测试 test命令 Shell环境根据命令执行后的返回状态值&#xff08;$?&#xff09;来判断是否执行成功…

找最大数字-第12届蓝桥杯国赛Python真题解析

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第60讲。 找最大数字&#…

你会拧螺丝吗?来看看如何拧紧螺丝?——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 螺丝拧紧看似简单&#xff0c;却是一门需要技巧和耐心的技术活。很多人可能会认为&#xff0c;只要把螺丝旋进孔里&#xff0c;用力拧紧就可以了。但实际上&#xff0c;拧紧螺丝的过程远不止如此。在这篇文章中&#xf…

FPGA+DDR+SERDES+USB3.0单向传输机方案,数据只能单向传输,避免反向攻击,确保系统安全

FPGADDRSERDESUSB3.0方案&#xff0c;设备包含发送端接收端&#xff0c;物料上采用光纤通讯&#xff0c;数据只能单向传输&#xff0c;避免反向攻击&#xff0c;确保系统安全 客户应用:高安全、高可靠性要求的场景 主要性能: 1.支持USB3.0传输&#xff0c;实测可达到350MB/s 2.…

做安卓应用开发的我,转前端开发了

距离转前端开发已经快3个月了&#xff0c;现在自己也慢慢的熟悉了开发。 在2月份的时候。领导找我们移动小组的谈话&#xff0c;主要是关于转前端或者后端的问题。由于公司移动端的选型&#xff0c;对安卓原生的需求降低&#xff0c;问下我们转其他开发的需求。 我毫不犹豫的选…

【C++】滑动窗口:最大连续1的个数

1.题目 2.算法思路 其实在做这道题的时候并不需要真的把0翻转成1&#xff0c;只需要找到最长的子数组且该子数组中0的个数不大于K&#xff0c;就可以了&#xff01; 当然我们首先想到的是暴力穷举法&#xff1a; 找到所有符合题意的子数组&#xff0c;跳出最长的那个就可以了…

Spring AI实战之一:快速体验(OpenAI)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 关于Spring AI Spring Boot、Spring Cloud、Spring Data&#xff0c;作为一名Java程序员&#xff0c;相信您对这些概览早已耳熟能详&#xff0c;或者天天在用…

Django中如何让页面之间建立关系

今天给大家讲解两种让页面建立联系的方式 一、重定向 二、表单提交 先看第一种方式&#xff0c;重定向 首先需要了解客户端发起请求的过程 1、客户端向服务端发起请求,比如请求地址是&#xff1a;http://127.0.0.1:8000/lili/submit/ 2、程序根据路由找到视图函数 3、执行视…

sqlserver中替换空格和换行

sqlserver 中换行符&#xff0c;如下&#xff1a; sql语句如下&#xff08;只是在window系统中&#xff09;&#xff1a; //替换换行-使用char(10)或者char(13) select REPLACE(F_CNKITitle ,char(10),) title from tzkj_CNKIContent tc where --F_CnkiContentID ffdc7412-41…

AI智剪新风尚:一键操作,批量视频剪辑轻松入门

随着科技的飞速进步&#xff0c;人工智能(AI)已逐渐渗透到我们生活的各个领域&#xff0c;其中&#xff0c;AI视频剪辑技术的出现&#xff0c;为视频制作带来了革命性的变革。如今&#xff0c;一键操作、批量处理的AI智剪正成为视频剪辑的新风尚&#xff0c;让剪辑工作变得前所…