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

发布于 2024-11-04 09:54:41 字数 389 浏览 6 评论 0原文

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

可以对哪些哈希类型执行此操作? 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?

谢谢,

克里斯。

If I know the hashes of two (or more) parts of some data, can I calculate the hash of the full data from those hashes?

Which hash types can this be done for? SHA1, SHA256, MD5? (Security of hashes is not important for my use case.)

i.e.

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

Does fn exist such that

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

Does fn exist for MD5, SHA1 or SHA256?

Thanks,

Chris.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝颜夕 2024-11-11 09:54:41

简短的回答。不。

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

Short answer. No.

Hashes are completely different for minimal deviations and untill you can't calculate them back this won't work. Even if you can calculate them back, the result will be a list of possibilities you can choose from. So there is nothing deterministic.

单身狗的梦 2024-11-11 09:54:41

通过 data0 进行散列使系统处于某种中间状态。您的 hash(data1) 是根据干净状态计算的。您无法修复 hash1 来弥补缺失的中间状态(对于良好的哈希函数)。

Hashing through data0 puts the system in some intermediate state. Your hash(data1) was calculated from a clean state. You cannot fix hash1 to make up for that missing intermediate state (for a good hash function).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文