1. 首页
  2. 文档
  3. IPFS
  4. 指南|Guides
  5. 概念
  6. 哈希

哈希

哈希是一些函数,它接受一些任意输入并返回一个固定长度的值。特定值取决于使用的给定哈希算法,例如SHA-1(由Git使用),SHA-256BLAKE2,但给定的哈希算法始终为给定输入返回相同的值。查看完整的哈希函数列表以获取更多信息。

举个例子,输入:

Hello world

将由SHA-1表示为:

0x7B502C3A1F48C8609AE212CDFB639DEE39673F5E

但是,完全相同的输入使用SHA-256则会生成以下输出:

0x64EC88CA00B268E5BA1A35678A1B5316D212F4F366B2477232534A8AECA37F3C

请注意,第二个哈希比第一个哈希长。这是因为SHA-1创建了160位哈希,而SHA-256创建了256位哈希。此外,前缀0x只是一个指示器,告诉我们以下散列表示为BASE 16(或十六进制)数。

哈希可以由不同的编码基准(base2base16base32等等)来表示。实际上,IPFS使用它作为其内容标识符的一部分,并使用多基准协议同时支持多个基准表示。

例如,上面的“Hello World”的SHA-256哈希可以表示为BASE 32:

mtwirsqawjuoloq2gvtyug2tc3jbf5htm2zeo4rsknfiv3fdp46a

加密哈希的特征

加密哈希具有几个非常重要的特征:

  • 确定性 – 相同的输入消息始终返回完全相同的输出哈希
  • 不相关 – 消息中的小变化应该生成完全不同的哈希
  • 唯一性 – 两条不同的消息不可能生成相同的哈希
  • 单向性 – 从其哈希中猜测或计算输入消息是不可行的

事实证明,这些功能还意味着我们可以使用加密哈希来识别任何数据:哈希对我们计算的数据是唯一的,并且它不会太长(哈希是固定长度,因此SHA-256哈希1千兆字节的视频文件仍然只有32字节),因此在网络上发送它不会占用大量资源。

这对于像IPFS这样的分布式系统至关重要,我们希望能够从许多地方存储和检索数据。运行IPFS的计算机可以询问它所连接的所有对等节点是否有具有特定哈希的文件,如果其中一个有,则它们会发送回整个文件。如果没有像加密哈希这样的简短唯一标识符,这是不可能的。这种技术称为“内容寻址” – 因为内容本身用于形成地址,而无关计算机和存储在其中的磁盘位置的信息。

标签 , , ,
   这篇文档对你有帮助吗?

How can we help?