date
icon
password
博客链接
Pin
Pin
Hide-in-Web
Hide-in-Web
网址
type
slug
tags
category
bottom
bottom
Hide-in-Config
Hide-in-Config
comment
status
summary
Cryptographic hash function → 哈希加密函数。

哈希函数的定义:

哈希函数是密码学中的一种重要工具,它将输入数据(或消息,message)转换为固定长度的字符串。这个过程是单向的,意味着从哈希值无法逆推出原始数据。
哈希函数具有几个关键特性
  1. 相同输入总是产生相同输出;
  1. 不同输入尽量产生不同的输出(抗碰撞,Collision Resistance,有时也称为 Collision Free);
  1. 小的输入变化会导致哈希值的巨大变化。
哈希函数广泛应用于数据完整性校验、数字签名和区块链等领域。

哈希函数的输入:

哈希函数的输入通常称为是 message(消息)
  • 哈希函数的输入可以是任意长度的字符串或数据。无论输入是字母、符号、汉字、文件内容,甚至图片或音频数据,哈希函数都可以接受并处理它。
  • 由于哈希函数的设计原理,它将任意长度的输入“压缩”成一个固定长度的输出值(例如,SHA-256 总是生成一个 256 位的哈希值)。
  • 虽然从理论上讲输入可以是无限长的,但在实践中,输入数据的长度会受到计算资源和时间的限制。如果数据非常大,处理的时间和资源消耗也会增加。

哈希函数的输出:

哈希函数接受原始数据(消息)作为输入,并生成一个固定长度的输出,通常称为“哈希值”“摘要”(digest)
无论输入的长度或内容是什么,哈希函数的输出总是一个固定长度的哈希值。例如:
  • SHA-256(Secure Hash Algorithm):输入任何数据,输出总是 256 位(32 字节)的哈希值。
  • SHA-1(又叫做 SHA-160):输出总是 160 位(20 字节)。
  • MD5:输出总是 128 位(16 字节)。

不同的输入有没有可能产生相同的哈希值?

不同的输入可能产生同一个哈希值,这就是所谓的哈希碰撞(hash collision)。
由于哈希函数的输出空间是有限的(例如,SHA-256 的输出空间是 ),而输入空间是无限的(理论上可以是任意长度的输入),根据【
📼
鸽笼原理
】,必然存在不同的输入数据映射到相同的哈希值。
尽管碰撞在理论上可能发生,但现代加密哈希函数设计的目标就是尽可能减少碰撞的概率。在实际应用中,找到两个不同输入产生相同哈希值的概率极低,如果想要认为产生,那么概率就更是微乎其微,因此才说比特币系统具有抗哈希碰撞的特性,这也是比特币系统的基础。
 
Loading...
df
df
我的学习笔记
最新发布
2025 · 电子系统综合设计
2025-6-12
阅读论文前
2025-5-30
Anaconda + Pytorch/Tensorflow 的安装教程
2025-5-30
遥感数字图像处理笔记
2025-5-30
区块链的应用与技术笔记
2025-5-30
模拟电子技术笔记
2025-5-30
公告
🎉欢迎来到我的笔记分享网站🎉
『 👉🏾 我的所有博客 👈🏾 』
『❤️‍🔥请我吃根棒棒糖🍭❤️‍🔥』
笔记内容可用于知识检索和复习!
¬_¬ 善用【Ctrl+K & Ctrl+F
笔记仅供学习交流,
请在引用时注明来源🫂
笔记疏漏之处望大家在评论区指出!
尽量用电脑来查看,显示效果最好🥰
希望和大家一起进步!!🥳