首页 > 解决方案 > 在以无损格式(如 PNG、GIF 等)压缩的图像上计算散列是否安全?

问题描述

我想知道任何无损图像压缩格式(例如 PNG)是否带有某种唯一性保证,即两个不同的压缩二进制文件总是解码为不同的图像。

我想计算以无损压缩格式存储的图像的哈希值,并且想知道计算压缩版本的哈希值是否足够。

(有一些很好的理由来计算未压缩图像上的哈希,但这里超出了我的问题范围。)

标签: hashpngimage-compressionlossless-compression

解决方案


不,这不适用于 PNG。压缩过程有许多参数(每行使用的过滤类型、ZLIB 压缩级别和设置),因此单个原始图像可以生成许多不同的 PNG 文件。更糟糕的是,PNG 允许包含带有杂项信息(例如,文本注释)的辅助数据(块)。


推荐阅读