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

这篇具有很好参考价值的文章主要介绍了安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

窃听

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

假冒

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

篡改

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

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

事后否认

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

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

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

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

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

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

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

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

密文与解密

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

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

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

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 需要经过数百次的加法和移位运算才能生成哈希值。

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

应用示例

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

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

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

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

参考资料:我的第一本算法书 (石田保辉 宮崎修一)文章来源地址https://www.toymoban.com/news/detail-757628.html

到了这里,关于安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 区块链基础知识——哈希函数

    哈希函数是一种数学函数,可根据输入的内容输出其对应的哈希值。散列函数的输入具有任意长度,但输出始终具有固定的长度。 散列算法的核心是一个数学函数,该散列函数构成散列算法的一部分,根据输入的数据块进行运算,得到的结果作为散列值。散列算法涉及多轮散

    2024年02月11日
    浏览(54)
  • 【基础知识】什么是哈希冲突?

    哈希表(Hash Table)是一种数据结构,它可以快速地在大量数据中查找、插入和删除时数据。哈希表通过使用哈希函数将键(Key)映射到一个位置,然后在该位置存储或查找数据。 哈希函数的作用是,将键转换为一个整数,这个整数通常称为哈希值(Hash Value)。哈希表的范围通

    2024年02月06日
    浏览(38)
  • Shiro-05-shiro 基础知识补充密码学+哈希散列

    密码术是隐藏或混淆数据的过程,因此窥探眼睛无法理解它。 Shiro的加密目标是简化JDK的加密支持并使之可用。 需要特别注意的是,密码通常不是特定于主题的,因此Shiro API的其中一个领域不是特定于主题的。 即使未使用“主题”,您也可以在任何地方使用Shiro的加密支持。

    2024年02月21日
    浏览(49)
  • 自动驾驶技术的基础知识

    自动驾驶技术是现代汽车工业中的一项革命性发展,它正在改变着我们对交通和出行的理解。本文将介绍自动驾驶技术的基础知识,包括其概念、历史发展、分类以及关键技术要素。 自动驾驶是一种先进的交通技术,它允许汽车在没有人类干预的情况下完成驾驶任务。这意味

    2024年02月07日
    浏览(52)
  • Windows安全基础:认证基础知识

    目录 Windows凭据 Windows访问控制模型 访问令牌: 安全标识符(SID): 安全描述符: 令牌安全防御 1、禁止域管理员异机登录 2、开启“审核进程创建”策略 SSPI(Security Support Provider Interface ,安全支持提供程序接口):是windows操作系统中用于执行各种安全相关操作的公用API,

    2024年02月02日
    浏览(57)
  • FPGA基础知识-实用建模技术

    目录 学习目标: 学习内容: 1.过程连续赋值 2.改写参数 3.条件编译和执行 4.时间尺度 5.常用的系统任务 学习时间: 学习总结 提示:这里可以添加学习目标 1.掌握怎样在模块调用时用defparam语句重新定义参数值J解释条件编译和Verilog 插述部件的执行。· 2.认识和理解系统任务

    2024年02月10日
    浏览(39)
  • 安全测试基础知识

    软件安全测试是评估和测试系统以发现系统及其数据的安全风险和漏洞的过程。没有通用术语,但出于我们的目的,我们将评估定义为分析和发现漏洞,而不尝试实际利用这些漏洞。我们将测试定义为发现和尝试利用漏洞。 安全测试通常根据要测试的漏洞类型或正在执行的测

    2024年02月11日
    浏览(48)
  • 安全 --- 内网基础知识(01)

    (1)概念 内网也称局域网(Local Area Network,LAN)是指在某一工作区域内由多台计算机互联形成的计算机组,一般是方圆几千米内。局域网可实现文件管理、应用软件共享、打印机共享、工作内的历程安排、电子邮件和传真通信服务等功能。 内网为封闭性网络,一定程度上能

    2024年02月10日
    浏览(48)
  • Web安全入门基础知识(笔记)

    0x01 基础名词 一、域名 1.什么是域名 2.域名在那里注册 3.什么是二级域名,多级域名,顶级域名 4.域名发现对于安全测试的意义 二、DNS 1.什么是DNS 2.本地host和DNS的关系 3.CDN是什么,和DNS有什么关系 三、常见的DNS攻击 四、脚本语言 1.常见的脚本语言有哪些 2.不同的脚本类型于

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包