如果我知道某些数据的两个(或更多)部分的哈希值,我可以从这些哈希值计算完整数据的哈希值吗?
这可以为哪种哈希类型做? 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?
谢谢,
克里斯。
答案 0 :(得分:2)
简短回答。否。
对于最小的偏差,哈希是完全不同的,直到你无法计算它们,这将无效。即使您可以计算它们,结果也将是您可以选择的可能性列表。所以没有确定性。
答案 1 :(得分:0)
哈希data0
使系统处于某种中间状态。您的hash(data1)
是从干净状态计算出来的。您无法修复hash1以弥补缺少的中间状态(对于良好的哈希函数)。