安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍

news2024/12/22 17:03:54

安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍

通过互联网交换数据时,数据要经过各种各样的网络和设备才能传到对方那里。数据在传输过程中有可能会经过某些恶意用户的设备,从而导致内容被盗取。

因此,要想安全地使用互联网,安全技术是不可或缺的。

传输数据时的四个问题:窃听、假冒、篡改、事后否认

窃听

在这里插入图片描述

假冒

在这里插入图片描述

篡改

在这里插入图片描述

除了被第三者篡改外,通信故障导致的数据损坏也可能会使消息内容发生变化。

事后否认

在这里插入图片描述

这种情况会导致互联网上的商业交易或合同签署无法成立。这种行为便是“事后否认”。

解决这些问题的安全技术:加密、消息认证码、数字签名

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

问题和相应的解决方法总结:

在这里插入图片描述

*“数字签名”技术存在“无法确认公开密钥的制作者”这一问题。要想解决这个问题,可以使用“数字证书”技术。

密文与解密

在这里插入图片描述

在传输数据中,数据可能会被第三者恶意窃听。我们需要给想要保密的数据加密。加密后的数据被称为**“密文”**。

在这里插入图片描述

B 收到密文后,需要解除加密才能得到原本的数据。 把密文恢复为原本数据的操作就叫作**“解密”**。

计算机会用由 0 和 1 这两个数字表示的二进制来管理所有数据

对计算机来说,数据就是一串有意义的数字罗列。密文也是数字罗列,只不过它是计算机无法理解的无规律的数字罗列。 也就是说,加密就是数据经过某种运算后,变成计算机无法理解的数的过程。

在这里插入图片描述

加密技术的定义:将数据变成第三者的计算机无法理解的形式,然后再将其恢复成原本数据 的一系列操作就是加密技术

哈希函数

哈希函数可以把给定的数据转换成固定长度的无规律数值。转换后的无规律数值可以作为数据摘要应用于各种各样的场景。

在这里插入图片描述

我们可以把哈希函数想像成搅拌机,将数据输入到哈希函数后,输出固定长度的无规律数值。输出的无规律数值就是“哈希值”。哈希值虽然是数字,但多用十六进制来表示。

计算机会用由0和1这两个数字表示的二进制来管理所有的数据。虽然哈希值是用十六进制表示的, 但它也是数据,在计算机内部同样要用二进制来进行管理。也就是说,哈希函数实际上是在计算机内部进行着某种运算的。

哈希函数的特征:

1、无论输出的数据大小,哈希值长度相同。(十位)

在这里插入图片描述
在这里插入图片描述

2、如果输入的数据相同,那么输出的哈希值也必定相同**(使用同一个哈希算法)**

在这里插入图片描述

3、输入相似的数据并不会导致输出的哈希值也相似。

在这里插入图片描述

4、输入的两个数据完全不同,输出的哈希值也有可能是相同的,虽然出现这种情况的概率比较低。这种情况叫作**“哈希冲突”**。

在这里插入图片描述

5、输出和输入不可逆:不可能从哈希值反向推算出原本的数据。

在这里插入图片描述

6、求哈希值的计算相对容易


*哈希函数的算法中具有代表性的是 MD5 、SHA-1和 SHA-2 等。其中 SHA-2 是现在应用较为广泛的一个,而 MD5 和 SHA-1 存在安全隐患,不推荐使用。

(MD5: Message Digest Algorithm 5; SHA: Secure Hash Algorithm)

不同算法的计算方式也会有所不同,比如 SHA-1 需要经过数百次的加法和移位运算才能生成哈希值。

若使用的算法不同,那么就算输入的数据相同,得到的哈希值不同。

应用示例

将用户输入的密码保存到服务器时也需要用到哈希函数。

如果把密码直接保存到服务器,可能会被第三者窃听,因此需要算出密码的哈希值,并只存储哈希值。当用户输入密码时,先算出该输入密码的哈希值,再把它和服务器中的哈希值进行比对。这样一来,就算保存的哈希值暴露了,鉴于上文中提到的哈希函数的第五个特征(输入输出不可逆),第三者也无法得知原本的密码。

密码的哈希值,并只存储哈希值。当用户输入密码时,先算出该输入密码的哈希值,再把它和服务器中的哈希值进行比对。这样一来,就算保存的哈希值暴露了,鉴于上文中提到的哈希函数的第五个特征(输入输出不可逆),第三者也无法得知原本的密码。

就像这样,使用哈希函数可以更安全地实现基于密码的用户认证。

参考资料:我的第一本算法书 (石田保辉 宮崎修一)

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

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

相关文章

概率的乘法公式

两个事件的情况 假设A、B为随机事件,并且事件A的概率,那么 三个事件的情况 假设A、B、C为随机事件,并且,那么 多个事件的情况 假设为随机事件,其中,并且,那么

统计字母数量-第11届蓝桥杯选拔赛Python真题精选

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

SQL的触发器和存储过程,一文学会!

目录 一、什么是SQL 二、什么是触发器 三、什么是存储过程 一、什么是SQL SQL(Structured Query Language)是结构化查询语言的缩写,它是用于管理和操作关系型数据库的标准化语言。SQL是一种声明式的语言,通过编写SQL语句来描述对数据库的操作。SQL具…

【Linux】高性能 Web 服务器 Nginx 安装教程(Ubuntu 22.04)

前言 Nginx 是一个高性能的开源 Web 服务器软件,也可以用作反向代理服务器、负载均衡器、HTTP 缓存以及作为邮件代理服务器等。Nginx 以其高性能、稳定性和丰富的功能而闻名,被广泛用于构建高流量网站和应用程序。 步骤 更新软件源 首先需要更新系统的软…

关于“Python”的核心知识点整理大全17

目录 ​编辑 8.3.4 结合使用函数和 while 循环 greeter.py 8.4 传递列表 greet_users.py 8.4.1 在函数中修改列表 printing_models.py 8.4.2 禁止函数修改列表 要将列表的副本传递给函数,可以像下面这样做: 往期快速传送门👆&#x…

16:00的面试,16:07就出来了,问的问题过于变态了。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到六月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40…

Java版直播商城规划:电商源码、小程序、三级分销与免费搭建全攻略

SAAS云平台】打造全行业全渠道全场景的SaaS产品,为店铺经营场景提供一体化解决方案;门店经营区域化、网店经营一体化,本地化、全方位、一站式服务,为多门店提供统一运营解决方案;提供丰富多样的营销玩法覆盖所有经营场…

图片类型的二维码怎么做?扫码看图长期有效

扫码看图的效果是怎么做出来的?现在用二维码来查看图片的方式越来越流行,这种方法能够让更多人同时查看图片。可能有些小伙伴在生成的图片二维码时担心二维码是有时间限制的,逾期后就无法展示了,从而无法满足自己的使用需求&#…

git客户端安装问题

问题回顾: 做git客户端版本升级,安装好之后提示git:‘remote-https‘ 不是一个 git 命令。参见 git --help。 问题处理: 缺少第二步依赖下载 安装步骤: 1、删除安装git yum remove git 2、安装依赖 yum install lib…

企业选CRM系统,这3个关键点你一定不能错过

在充满竞争的商业市场中,企业需要一种强大的工具来管理客户关系,从而提高销售效率。CRM客户关系管理软件就是企业所需要的。然而仅仅是在国内,CRM的供应商就超过了一千家,那么应该怎样选择适合企业的CRM系统? 一、软件…

数字图像处理(实践篇)二十三 使用dlib进行人脸68关键点检测

目录 1 安装dlib 2 下载shape_predictor_68_face_landmarks.dat文件 3 涉及的函数 4 实践 使用dlib进行人脸68关键点检测实践。 1 安装dlib 使用如下命令即可安装dlib: pip install dlib

beebox靶场A3 中等级别 xss通关教程

特别注意,低级和中级的差别在于中级使用了一些函数进行了过滤或转义字符 例如 addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 预定义字符是: 单引号()双引号(")反斜杠(\&…

14:00面试,14:08就出来了,问的问题有点变态。。。。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

Chart 9 Adreno GPU的 OpenCL 扩展

文章目录 前言9.1 OS-dependent vendor extensions9.1.1 Performance hint (cl_qcom_perf_hint)9.1.2 Priority hint for context creation (cl_qcom_priority_hint)9.1.3 Recordable command queue (cl_qcom_recordable_queues)9.1.4 cl_qcom_protected_context9.1.5 cl_qcom_…

python对验证码进行降噪处理

举例图: 第一步先通过二值化处理把干扰线去掉: from PIL import Image# 二值化处理 def two_value():for i in range(1,5):# 打开文件夹中的图片imageImage.open(./Img/str(i).jpg)# 灰度图limimage.convert(L)# 灰度阈值设为165,低于这个值…

搭建个人博客攻略

文章目录 碎碎念一、下载 g i t git git 和 N o d e . j s Node.js Node.js二、安装 h e x o hexo hexo 1. 1. 1.在非 C C C 盘新建一个文件夹 b l o g blog blog,右键打开 g i t b a s h git bash gitbash 2. 2. 2.在 g i t git git 创建文件 hexo 3. 3. 3.he…

基于FPGA的图像RGB转CIE-Lab实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1RGB颜色空间 4.2CIE-Lab颜色空间 4.3RGB转CIE-Lab算法原理 5.算法完整程序工程 1.算法运行效果图预览 将FPGA的结果导入到matlab,并和matlab的仿真结果进行对比&#xff1a…

数据质量管理软件行业分析:2023年复合增长率达到31.9%

数据质量管理软件按照一般的功能模块划分可以划分为产品信息管理、存货管理、销售管理、采购管理、生产管理、设备管理、实验室管理、品质管理、售后管理等模块,质量管理绝非仅仅检验,或者常说的批检、巡检、首检、自检等,质量管理是对只要影…

密码至少包含大写、小写字母、数字和特殊字符其中三种

j 正则表达式: var passReg /^(?![a-zA-Z]$)(?![A-Z0-9]$)(?![A-Z\W_!#$%^&*~()-]$)(?![a-z0-9]$)(?![a-z\W_!#$%^&*~()-]$)(?![0-9\W_!#$%^&*~()-]$)[a-zA-Z0-9\W_!#$%^&*~()-]{8,32}$/;if (!passReg.test(value)) {return callback(new Er…

外汇天眼:新手做外汇交易需要注意什么?

外汇投资是一个充满机会和挑战的市场,对于新手来说,了解一些必要的知识和技巧是非常重要的。 以下是一些新手投资外汇必须注意以下几点: 1.了解外汇市场的基本知识 在进入外汇市场之前,了解一些基本知识是必要的。 这包括外汇市…