Duk*_*kem 1 hash crc32 md5 sha1 sha256
对于 CRC32,可以组合两个哈希,这样给定两个流 A 和 B,我们只需知道 CRC(A)、CRC(B) 和 length(B) 就可以找到 CRC(A+B)。(此处提供了实现,以及 Mark Adler对其工作原理的解释)。
例如,这使我们能够并行计算单个流上的哈希值,或者仅在其包含介质上使用前向查找来计算大型(如“不适合内存”) 、严重碎片化的流上的哈希值(这为非常慢的媒体提供了巨大的加速潜力)。
似乎没有可用于其他更复杂的哈希算法(例如 MD5)的此类行为的实现。MD5 根本不可能实现这种行为吗?难道这件事太难做到了,以至于没有人愿意去尝试吗?更复杂的算法(例如 SHA1 或 SHA256)怎么样?我很想听听对此的任何见解。