如何通过md5比较图像?

Tre*_*ree 3 php hash md5 compare image

这种方法比较图像的像素值吗?我猜它不会起作用,因为它们彼此的大小不同但是如果它们是相同的,但是以不同的格式呢?例如,我拍了一个截图并保存为.jpg另一个并保存为.gif.

jon*_*ohn 13

MD5哈希是实际的二进制数据,因此不同的格式将具有完全不同的二进制数据.

因此,要使MD5哈希匹配,它们必须是相同的文件.(在边缘情况下有例外.)

这实际上是法医执法部门发现其认为违禁品的一种方式.(参考图像)


Gaz*_*ler 8

它是一个MD5校验和 - 与下载文件时经常看到的一样,如果下载文件的MD5与提供者给出的MD5相匹配,则文件传输成功. http://en.wikipedia.org/wiki/Checksum 如果两个文件之间甚至有1位差异,那么产生的散列将完全不同.

由于JPG和GIF之间的编码不同,2将不具有相同的MD5哈希.


Mar*_*kus 5

md5是一种哈希算法,因此它不比较图像,而是比较数据。您输入的数据几乎可以是任何内容,例如文件的内容。然后它根据内容(文件的原始数据)输出一个哈希字符串。

因此,在将图像输入时基本上不会比较图像md5,而是比较图像的原始数据。哈希算法除了原始数据外不知道任何信息,因此同一屏幕截图的jpggif(或任何其他图像格式)永远不会相同。

即使您比较解码的图像,它也不会输出相同的哈希值,而是会产生人眼看不到的微小差异(取决于所使用的压缩量)。在比较无损编码图像解码数据时,这可能会有所不同,但我在这里不知道。

请参阅维基百科文章,了解有关哈希函数的更详细说明和技术背景。