最初的任务是处理图像,对其进行散列,使一些繁重的图像工作并将此散列和工作结果存储在数据库中,在下一次使用相同图像的请求期间,我想将图像散列与我在数据库中的散列进行比较并加载数据库缓存结果减少了繁重的工作量。
所以问题是,要散列什么?用什么来散列?我看到了 phash 的良好 php 实现,但它似乎非常适合相似性检查,但我们需要精确匹配。phash 也适用于精确数学吗?
谢谢!
最初的任务是处理图像,对其进行散列,使一些繁重的图像工作并将此散列和工作结果存储在数据库中,在下一次使用相同图像的请求期间,我想将图像散列与我在数据库中的散列进行比较并加载数据库缓存结果减少了繁重的工作量。
所以问题是,要散列什么?用什么来散列?我看到了 phash 的良好 php 实现,但它似乎非常适合相似性检查,但我们需要精确匹配。phash 也适用于精确数学吗?
谢谢!
PHP为此提供了一个内置函数,这可能是最简单的解决方案:
$hash = hash_file("sha1", '/path/to/image');
您可以使用此检查进行完全匹配。发生冲突的可能性很小,但您可以通过在比较中使用文件路径或数据库 ID 来帮助缓解这种情况。
这个类似问题的答案提供了更多选择。