对于CRC32,可以组合两个哈希值,这样给定两个流A和B,我们可以找出只知道CRC(A),CRC(B)和长度(B)的CRC(A + B) 。 (可用的实施here,以及Mark Adler here对其工作原理的解释。
这允许我们,例如,并行计算单个流上的哈希值,或者计算大型上的哈希值(如'不适合内存'),严重碎片流仅使用正向搜索其包含的媒体(这为非常慢的媒体提供了极大的加速潜力)。
似乎没有针对其他更复杂的哈希算法(如MD5)实现此类行为的实现。从MD5开始,这种行为根本不可能吗?是不是很难做到没有人费心去尝试?那些更复杂的算法如SHA1或SHA256呢?我很想听听有关这方面的任何见解。
答案 0 :(得分:2)
对于任何加密哈希, 都不可能。如果可能,则该哈希不再被视为加密。