如果我知道某些数据的两部分的哈希值,我可以从这些哈希值计算完整数据的哈希值吗?

时间:2011-05-03 12:53:40

标签: hash md5 sha1 sha256

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

这可以为哪种哈希类型做? SHA1,SHA256,MD5? (哈希的安全性对我的用例并不重要。)

即。

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?

谢谢,

克里斯。

2 个答案:

答案 0 :(得分:2)

简短回答。否。

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

答案 1 :(得分:0)

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