0

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

4

2 回答 2

0

如果您的哈希是 CRC-32,那么您可以在压缩数据中插入或附加四个字节,然后设置这些字节以获得原始 CRC。例如,在 gzip 流中,您可以在标头中插入一个 4 字节的额外块。

密码散列的全部意义,比如作为问题标签的 MD5,就是让这变得非常困难,或者实际上是不可能的。

于 2016-11-10T14:38:48.347 回答
0

这取决于您使用的 shash。如果您使用的是 crc32,那么让您的哈希值相同是非常简单的。MD5 可能已经可行(我不知道那里的艺术开始),SHA1 可能会在几年内可行。如果您使用的是 SHA256,最好放弃。

撇开破解密码不谈,除非您的哈希算法特别了解您的压缩设置,或者您的输入文件经过精心设计以引发哈希冲突:哈希在压缩前后会发生变化。这意味着任何标准的加密哈希都会在压缩时发生变化。

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

于 2016-11-10T12:48:04.683 回答