密码学之哈希

密码学哈希算法 哈希函数,也称为散列函数,是一种将任意长度的数据转换为固定长度的字符串的数学函数。这种字符串被称为哈希值或消息摘要。哈希函数HHH将输入数据MMM映射到一个固定长度的哈希值hhhhHMh = H(M)hHMMMM代表输入的消息,它可以是任意长度。HHH是哈希函数。hhh是输出的哈希值,长度固定。SHA系列算法由美国国家安全局(NSA)设计,并由美国国家标准与技术研究院(NIST)发布。自1993年SHA-0首次发布以来,该系列经历了多次重要的迭代和更新。SHA-0。 阅读详情

原文链接:https://zhuanlan.zhihu.com/p/44544072

哈希(hash)

哈希函数是一种函数。

举一个简单的例子来说明它的用法。譬如学校里以学生名字为索引建了一张表,存储学生的信息。同时希望在查找的时候能够高效率地查找到学生。可以怎么实现呢?(如果以学号为索引,可以一次查找就找到;以名字为索引纯粹是举例;但是在实际中有很多以名字为索引的情况,譬如Web开发中,表单form的各项一般都有名字,在后台代码实现中便是以名字为索引的)

如果靠匹配字符串来查找,毫无疑问是非常低效的;所以这个时候的一个做法就是,首先在存储时,对名字进行一次哈希,得到一个数字;然后将名字存在相应数字所对应的位置。在进行查找时,再对希望查找的名字进行一次哈希,得到位置。在算法上,哈希的平均复杂度是O(1)。

加密哈希(cryptographic hash)

这里重点讨论的是加密哈希。
加密哈希是哈希函数的一种,它具有某些属性,使其适用于加密。通过加密哈希,它将任意大小的数据映射到固定大小的位串(散列),并被设计为单向函数,即一个不可逆的函数。从理想的加密散列函数输出重新创建输入数据的唯一方法是尝试对可能的输入进行暴力搜索,以查看它们是否产生匹配,或使用匹配哈希的彩虹表。布鲁斯施奈尔称单向散列函数是“现代密码学的主力”。输入数据通常称为消息(Message),输出(散列值或散列)通常称为消息摘要或简称为摘要(Digest)。

加密哈希的属性

理想的加密哈希函数有五个主要属性:

1.它是确定性的,因此相同的消息总是产生相同的散列
2. 可以快速计算任何给定消息的哈希值
3. 除了通过尝试所有可能的消息之外,从其散列值生成消息是不可行的
4. 对消息进行小的更改便能引起哈希值的巨大改变,以使新哈希值看起来与旧哈希值不相关
5. 找到具有相同散列值的两个不同消息是不可行的

下面对上面的五个属性进行简单解释。

1.确定性的
常见的哈希函数都满足这个特性。(只要计算过程中没有引入随机数/调度,应该都满足)
2. 快速计算
SHA-256算法的主要操作是异或运算,位运算非常快。
3. Hiding
hiding就是知道哈希的结果不能倒推输入。简单来说,譬如 x mod 100这样的哈希函数,如果结果是1,那么x可能是1、101、201等无穷的数。SHA族算法,从结果完全得不到输入的任何信息。
4. 雪崩效应
来自wiki,对输入的一点修改“over”,结果变化很大,也叫“雪崩效应”。
5. 抗冲突(collision-resis

哈希(hash) 哈希(hash)---C++详解 阅读详情

相关推荐

哈希哈希冲突、负载因子、哈希函数、哈希表、哈希

文章目录哈希哈希(散列)函数 哈希 哈希(散列)是一种数据结构,通过散列算法将元素值转换为散列值进行存储。使得元素存储的位置与元素本身建立起了映射关系,如果要查、改数据,就可以直接到对应的位置去,使得时间复杂度达到了 O(1)。 哈希(散列)函数 哈希函数就是建立起元素与其存储位置的映射关系。 对于哈希函数来说,必须具有以下特点; 哈希函数的定义域必须包括需要存储的全部关键码,而如果散列表允许有m个地址时,其值域必须在0 到m-1之间 哈希函数计算出来的地址能均匀分布在整个空间中(防止产生密集的哈希冲突

Jormungand_V的博客 4739

哈希算法教程(个人总结版)

哈希算法(Hash Algorithm)是一种将任意长度的输入(也称为消息)转换为固定长度的输出(也称为哈希值、散列值、摘要)的算法。SHA-256(Secure Hash Algorithm 256-bit)是SHA-2(Secure Hash Algorithm 2)家族中的一种,广泛应用于安全性要求较高的场景,如区块链、数字签名等。散列函数用于哈希表(Hash Table)等数据结构中,将数据映射到固定大小的数组上,以实现高效的数据存储和检索。哈希算法可以用于数据库的索引,提高数据检索的效率。

年糕的博客 5676

密码学基础(一)——哈希算法

由于哈希算法的单向性,可以从前一个数据块原文计算出下一个数据块所用的哈希值输入,但已知一个哈希值输入,难以反推出所有可能的数据块原文。哈希算法:哈希算法不可逆,包括:MD4、MD5、hash1、ripeMD160、SHA256、SHA3、Keccak256、国家标准SM3(国家密码管理局)哈希加“盐”(salt),所谓加“盐”,就是在明文的随机位置加上一串随机的字符串再进行hash,防止彩虹表攻击。加密/解密算法:加密解密算法可逆,但是必须要有秘钥,对称加密,非对称加密,数字签名算法DSA。

奔跑的蜗牛_Kieasr 7876

哈希(Hash)

开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。比如:在布隆过滤器中查找"alibaba"时,假设3个哈希函数计算的哈希值为:1、3、7,刚好和其他元素的比特位重叠,此时布隆过滤器告诉该元素存在,但实该元素是不存在的。注意:布隆过滤器如果说某个元素不存在时,该元素一定不存在,如果该元素存在时,该元素可能存在,因为有些哈希函数存在一定的误判。

m0_63742310的博客 6356

【数据结构】哈希(Hash)

数据结构:哈希函数

秋之回忆Alex的博客 9193

密码学之Hash散列算法

      前言 在第一篇文章中已经有介绍区块链技术概念,我们知道区块链主要是由共识算法机制、p2p网络、密码学这几个核心技术组成,前面几篇文章讲了共识算法,p2p网络,这次我们谈一下密码学密码学区块链系统的基础,如果没有密码学技术支撑,区块链就仅仅是一个普通的分布式日志系统。密码学区块链上应用比较多的主要有两种加密算法: 一是哈希散列算法,二是非对称加密算法。比如在前面的第三章...

to_cm的专栏 1万+

24、密码学哈希算法全解析

本文全面解析了密码学哈希算法的基础概念、应用场景、具体实现方法以及安全性分析。文章介绍了哈希算法的基本特性,如固定长度输出、抗冲突性和不可逆性,并详细探讨了其在消息完整性、密码存储和法医完整性等领域的应用。同时,对MD5、SHA系列等常见算法的原理和安全性进行了对比,并展望了哈希算法在未来量子计算和新兴应用场景中的发展趋势。

pepsi的博客 114

哈希算法和密码学

哈希算法负责“锁住数据”,保证数据的完整性和关联性,是结构的骨架。密码学负责“验证身份”,保证操作的授权和真实性,是安全的大门。subgraph Pre_Action [交易发起准备]A[用户A创建钱包] --> B[生成私钥/公钥对<br>(非对称加密)]B --> C[公钥推导出<br>区块链地址]endD[用户A发起转账] --> Esubgraph On_Chain_Process [交易上链与共识]

Augety_的博客 750

24、深入浅出:密码学哈希算法全解析

本文全面解析了密码学哈希算法的基本原理、应用场景及具体实现,包括常见的算法如MD5、SHA系列的运作机制和安全性分析。同时探讨了哈希算法在消息完整性验证、密码存储、法医鉴定等方面的实际应用,总结了算法选择的标准和未来发展趋势,为读者提供了一套完整的信息安全哈希算法使用指南。

swift5iosmith的博客 87

[js解密]一文看懂 SHA1 与 SHA256密码学哈希算法的前世今生

历史脉络 × 技术对比 × 视觉叙事 × 实践互动📌:Equifax数据泄露、Git提交伪造等案例,揭示信息防伪的刚性需求:从SHS(Secure Hash Standard)到NIST标准化进程📌📌:512位分块→80轮位运算(AND/OR/XOR/位移):理论碰撞难度仅280)📌“即使修改宇宙中一个原子的状态,其SHA256值也会彻底改变” —— 雪崩效应具象化fill:#333;color:#333;color:#333;fill:none;SHA1/SHA2基于Merkle-Damgård结

mxd01848的博客 1254

哈希算法:密码学的基础构件

因此,在安全设计中,应选择当前仍被认为安全的哈希算法,例如 SHA-256,而不是 MD5、SHA-1 这类已经不适合作为安全用途的算法。如果攻击者修改数据后,重新计算一个新的 Hash,并把新 Hash 一起发给设备,那么接收方仍然可能被骗。如果需要抵抗恶意修改,单独 CRC 不够,应至少考虑 Hash,并进一步结合 MAC 或数字签名。如果只有 Hash,没有签名,攻击者修改固件后也可以重新计算 Hash。但是,如果只校验 Hash,而不验证签名,仍然不能证明升级包来自官方。

ChatCoding的博客 355

密码学(对称与非对称加密 哈希算法)

目录 密码学 密码学发展 对称加密体制 非对称加密体制 混合加密 数字信封 哈希算法 密码学 密码学发展 古典密码:古代----19世纪末 近代密码:20世纪初---1949年 现代密码:1949(香农发表的《保密系统的加密原理》)---1975 公钥密码:1976(W.Diffi...

墨鱼菜鸡 209

赠书 | 密码学区块链中的应用:哈希算法与加密解密算法

来源|《商用区块链技术与实践》责编 | 晋兆雨头图 |付费下载于视觉中国*文末有赠书福利安全性是实现区块链系统功能的基础,也是目前阻碍区块链应用推广的因素之一。密码学是信息安全的基石...

区块链大本营 2506

区块链中的密码学技术——哈希算法、Merkle树、公钥密码算法

摘要: 本文是学习区块链技术中关于密码学这一部分的相关知识点学习总结整理。 哈希算法 Hash Function(哈希函数,也称散列函数) 定义 公式表示形式:  h=H(m)h=H(m) 函数说明: mm:任意长度消息(实际上有长度限制的,但因为长度可以非常大,这里可以认为是任意长度消息) HH:哈希函数 hh:固定长度的哈希值 典型的散列函数都有非常大的定义域,比如SHA-2最高接受(264−...

AT弄潮儿 6771

密码学基础:从哈希到加密

1.背景介绍 密码学是计算机科学的一个重要分支,它研究如何在保证数据安全的前提下,实现数据的传输和存储。密码学技术广泛应用于互联网、金融、军事等领域,为我们的生活和工作提供了安全的保障。在这篇文章中,我们将从哈希到加密的方面进行深入探讨。 1.1 哈希算法的基本概念 哈希算法是密码学中最基本的概念之一,它是一种将输入数据映射到固定长度输出的算法。哈希算法的主要特点是: 确定性:对于任何给...

AI天才研究院 1104
上一篇: 抓取微信文章:使用代理来处理反爬虫措施
下一篇: Java的集合框架——工具类(Collections,Arrays)
Mr.Bean-Pig
博客等级 码龄9年 163粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值