【发布时间】:2009-07-17 18:56:31
【问题描述】:
我想知道压缩算法是否总是为两组不同的文件生成唯一的输出。
假设我有两个文件 A 和 B,并假设我正在为每个文件应用压缩算法(例如 PKZIP - 这可以是任何压缩算法)以分别获取 A.zip 和 B.zip。对于 A 和 B 的某种组合,A.zip 是否有可能在二进制级别与 B.zip 完全相同?如果这不可能,我们可以安全地假设压缩等同于加密散列,以保证唯一性?另一方面,如果可能的话,能否请您提供一个示例 A 和 B 文件以及用于验证这种重复性的压缩算法?
【问题讨论】:
-
您提到“加密哈希”让一些人认为您打算出于安全目的使用无损压缩——对吗?如果是这样,这是一个糟糕的主意,因为他们给出的所有理由。但是,如果您只对保证唯一性感兴趣,并且准备处理压缩给您的可变长度输出,那么它可能是一个合理的选择(尽管出于所有实际目的,使用固定长度的加密哈希会更快并且运行良好——与例如 128 位密钥发生密钥冲突的可能性不可忽略)。
标签: algorithm compression hash unique