1

为什么不管 SHA-256 算法的输入大小(在比特币挖掘中),它总是输出 256 位的结果?

此外,为什么不管输入的大小,计算时间总是一样的?

4

2 回答 2

4

在您的第一个问题上,答案将是设计使然 - SHA-256 算法旨在获取任意数量的输入数据并产生 256 位输出,同时还保持某些属性以实现有效的加密哈希。其他散列算法产生不同的输出大小(例如,SHA-1 产生 160 位输出,SHA-512 产生 512 位输出等)。

你的第二个问题是基于一个不正确的假设——计算时间取决于输入的大小——即使只是读取一个 1MB 的文件,它自然也会比读取一个 1KB 的文件花费更长的时间,因为哈希是取决于输入的每一位,较大的输入比较小的输入需要更长的时间来散列。

于 2013-11-09T19:33:10.833 回答
1

输出大小与以这种方式设计的(算法)相同。

输入大小很重要——只需计算 1GB 文件和 1KB 文件的哈希值并进行比较——你会看到速度差异。

于 2013-11-09T19:32:05.333 回答