我正在进行一些图像处理代码,在其中我从URL下载一些图像(作为BufferedImage),并将其传递给图像处理器。
我希望避免将同一图像多次传递给图像处理器(因为图像处理操作成本很高)。如果图像的URL端点相同,则可以通过URL来防止这种情况。因此,我计划执行校验和或哈希以确定代码是否再次遇到相同的图像。
对于md5,我尝试了Fast MD5,它为图像(一些样本)生成了一个20K+字符长度的十六进制校验和值。显然,当涉及到数据库存储时,存储这个20K+字符哈希将是一个问题。因此,我尝试了CRC32(来自java.util.zip.CRC32)。它确实生成比哈希更小的校验和长度。
我确实理解校验和和哈希是用于不同目的的。对于上述目的,我是否可以只使用CRC32?它能解决问题吗,还是我需要尝试比这两个更多的东西?
谢谢, 阿比