所谓感知哈希算法(Perceptual hash algorithm,PHA),它是用于对多种格式的数据生成一个指纹的算法。当然本文只讨论图片格式。感知哈希不同于密码哈希(如md5云云),它对于相似特征的输入,会有相似的输出;而密码哈希,依赖于雪崩效应,对于非常微小的输入,都会有完全不同的输出。感知哈希算法被广泛应用于网络上的侵权查找,还有数字取证,因为它有能力可以发现两个相似的数据(根据比特位对比)。Perceptual hashing - Wikipedia、Looks Like It - The Hacker Factor Blog
相对于AHash算法,pHash是感知算法的增强版,它更为健壮,因为它使用了离散余弦变换(discrete cosine transform,DCT)来降频。
算法步骤
- 缩小尺寸。像aHash算法一样,pHash算法也从小图开始。然而图片要比8*8大一些,32 * 32是一个较好的尺寸,这样做并不是因为需要降低高频,而是更方便DCT计算。
感知哈希算法(pHash)是一种用于生成图片指纹的算法,常用于图片相似性检测。它通过缩小尺寸、简化色彩、计算DCT、减少DCT并构造哈希值来创建图片的数字指纹。与均值哈希(aHash)相比,pHash更注重频率的比较。Java实现和与其他算法的比较使得理解更深入。
订阅专栏 解锁全文
1072

被折叠的 条评论
为什么被折叠?



