2

如果我知道某些数据的两个(或更多)部分的哈希值,我可以从这些哈希值中计算出完整数据的哈希值吗?

这可以用于哪些哈希类型?SHA1、SHA256、MD5?(哈希的安全性对我的用例并不重要。)

IE

data0 = '0123'
data1 = '45678'
all_data = data0 + data1
hash0 = hash(data0)
hash1 = hash(data1)

fn 是否存在使得

hash(all_data) == fn(hash0, hash1)

MD5、SHA1 或 SHA256 是否存在 fn?

谢谢,

克里斯。

4

2 回答 2

2

简短的回答。不。

对于最小的偏差,哈希是完全不同的,直到你无法计算它们,这是行不通的。即使您可以计算它们,结果也将是您可以选择的可能性列表。所以没有什么是确定性的。

于 2011-05-03T13:03:14.370 回答
0

散列data0使​​系统处于某种中间状态。你hash(data1)是从一个干净的状态计算出来的。您无法修复 hash1 来弥补缺少的中间状态(对于良好的哈希函数)。

于 2013-11-19T05:43:53.640 回答