压缩会改变哈希值吗?

时间:2016-11-10 12:35:46

标签: hash compression md5-file

我有一个需要压缩的大文件,但是我需要确保原始文件具有与压缩文件相同的哈希值。我在较小的文件上尝试了它,哈希值不同但我认为这可能是因为元数据的变化。如何确保压缩后文件不会改变?

2 个答案:

答案 0 :(得分:0)

这取决于您使用的是哪种shash。如果你正在使用crc32,那么让你的哈希变得相同是非常微不足道的。 MD5可能已经可能(我不知道那里的艺术起点),SHA1可能在几年内可行。如果你使用SHA256,最好放弃。

除非您的哈希算法专门知道您的压缩设置或者您的输入文件经过精心设计以引发哈希冲突,否则请忽略破解密码:哈希将在压缩之前和之后发生变化。这意味着任何标准加密哈希都会在压缩时发生变化。

所有哈希算法看到的是一个没有任何意义的比特流。它不知道压缩方案,也不应该知道。

答案 1 :(得分:0)

如果您的散列是CRC-32,那么您可以向压缩数据插入或附加四个字节,并设置它们以获得原始CRC。例如,在gzip流中,您可以在标头中插入一个4字节的额外块。

密码哈希的重点,如MD5,作为问题的标签,是使这非常困难,或实际上是不可能的。