【发布时间】:2018-11-10 22:44:32
【问题描述】:
我需要分批发送我的数据,同时我需要为我的整个数据提供 sha256。
类似cat large file | chunker | receiver
其中接收器是预期接收数据的应用程序,可能在有效负载的标头 sha256 中的块中,然后是有效负载。收集完所有的chunk后,它应该存储整个传输的数据,以及所有数据的sha256(特定的sha256将仅用于rehash和确认数据的完整性。)
当然,最简单的事情是接收器从整个流数据中生成 sha256,但我想知道是否有一种更简单的方法,即收集所有块的所有哈希,并将它们组合起来生成一个最终哈希,即将与根据所有数据计算的哈希值相同。
换句话说 - 我从标题中复制了这个 - 我想知道是否有一个函数 F 可以接收数据块的散列列表,然后生成最终的散列值,该散列值等于所有生成的散列值数据。
再一次,换句话说,有这个公式: F(sha256(data[0]), sha256(data[1]), ... sha256(data[N])) = sha256(data[0..N])
函数 F 是什么? 它会是一个通用函数还是没有这种计算哈希的方式?
我怀疑没有这样的功能,或者这个问题太复杂而无法回答。
【问题讨论】:
-
散列操作的结果没有包含足够的信息来继续散列操作,其中包括散列算法本身内的所有状态信息。