【发布时间】:2014-05-17 04:10:32
【问题描述】:
我有一个大文件的部分总和,例如,每 50MB,总共有 5 个总和。
我想知道我是否可以从 5 个总和中恢复整个哈希和,即文件的 SHA1sum。可能吗?如果是这样,怎么做?如果没有,为什么不呢?
我正在尝试编写一些可以在 C# 中执行此操作的代码。
【问题讨论】:
我有一个大文件的部分总和,例如,每 50MB,总共有 5 个总和。
我想知道我是否可以从 5 个总和中恢复整个哈希和,即文件的 SHA1sum。可能吗?如果是这样,怎么做?如果没有,为什么不呢?
我正在尝试编写一些可以在 C# 中执行此操作的代码。
【问题讨论】:
不,这是不可能的。
原因是可能会发生冲突。不能保证两条不同的数据总是会给出不同的 SHA-1 哈希值。这是极不可能的。
这意味着用于生成哈希的数据是不确定的,因此您永远无法确定它是什么,因此永远无法重建您的原始数据。您需要这样做才能对其进行哈希处理。
【讨论】:
虽然无法从部分总和计算文件的 SHA-1,但您可以以增量方式计算文件的 SHA-1。查看this question的答案。
【讨论】: