是否有可能产生多个中间的SHA-256值,这些值可以在以后的某个时候以某种方式组合,从而产生由单个散列计算生成的相同的SHA-256?
换句话说,如果有一天我为一个SHA-256值散列一个4GB的.ISO映像文件,我是否可以通过将文件拆分成10个节,为每个节生成一个中间SHA-256,然后在稍后使用“仅”中间SHA-256值生成最终的SHA-256?
我意识到可能无法从最终的SHA-256值中生成10个中间SHA-256值,但我认为可能可以将文件散列为块,并在以后合并这10个中间SHA-256值,而不需要同时使用实际数据。
如果这是可能的,我将如何从C#和/或JavaScript中的中间SHA-256值生成最终的SHA-256?
编辑:,我想去掉中间值为SHA-256值的要求。
我不在乎它们是什么,只要我能够在以后使用“只”使用多个中间值而不使用数据来生成最终的SHA-256。如果它与我在4GB(任意大小)文件上一次性完成的SHA-256完全相同的话。
我在想一种类似代金券的系统,售票员要求看你的火车票,你让一些人代替你,说:“我已经检查过这个人了,你不需要,我会验证他的诚信”。
发布于 2015-07-30 08:07:14
散列算法为每个输入数据生成唯一的散列。中间散列的任何组合仍然与您的ISO文件不同,因此产生与直接散列文件不同的散列。
如果您放弃了从文件生成的散列必须与从中间产生的最终散列相同的要求,那么在我看来,仍然可以使用后一种方法,因为10散列的组合本身应该是唯一的,为每个输入文件提供唯一的最终散列。
这个计划可能是这样的:
https://stackoverflow.com/questions/31718220
复制相似问题