【学】哈希算法的确定性

哈希算法最核心、最基本的特性之一,称为 “确定性”。即:

确定性原则:只要输入数据完全相同,并且使用同一个哈希算法(如 MD5, SHA-256 等),无论在任何时间、任何地点、任何计算机上计算,得到的哈希值结果都将是一字不差、完全相同的

例如:

我们对字符串 "Hello, World!" 使用 SHA-256 算法进行哈希计算:

在北京的电脑上计算,结果是:dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f

在纽约的电脑上计算,结果依然是:dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f

一年后计算,结果也还是:

dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f

为什么这个特性至关重要?

哈希算法的“确定性”是它在计算机科学中得以广泛应用的基础。如果这个特性不成立,以下所有应用场景都会失效:

1.数据完整性校验

文件下载后,计算其哈希值并与官方提供的哈希值对比。如果相同,说明文件在传输过程中未被篡改。如果哈希值每次不同,这个校验就毫无意义。

2.密码存储

用户注册时,系统对密码进行哈希运算并存储。用户登录时,系统对输入的密码再次进行相同的哈希运算,然后与存储的哈希值比对。如果相同,则密码正确。

3.数字指纹/唯一标识

用文件的哈希值作为该文件的唯一身份标识。例如,Git 用哈希值来标识每一次提交和文件内容。如果同一内容产生不同哈希,整个版本控制系统会崩溃。

4.区块链与加密货币

每个区块的哈希都基于其内容(包括交易数据和前一个区块的哈希)计算得出。这是区块链不可篡改特性的基石。


补充:需要注意的是,哈希算法同时具备另一个看似矛盾实则精妙的特性:雪崩效应

雪崩效应:即使对原始数据做出极其微小的改变(比如改变一个标点、一个比特位),计算出的新哈希值也会变得面目全非,与旧哈希值毫无相似之处

总结一下:

相同输入 + 相同算法 = 永远相同的输出 (确定性)

微小改变的输入 + 相同算法 = 完全不同的输出 (雪崩效应)

这两个特性共同构成了哈希算法强大功能的支柱。确定性保证了验证的可重复性,而雪崩效应保证了哈希值的不可预测性和安全性。


内容源于deepseek

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容