模糊哈希算法(待詳細補充)

什麼是模糊哈希?

是一種基於內容分割的分片哈希算法(context triggered piecewise hashing, CTPH),主要用於文件的相似性比較

模糊哈希的主要原理:

使用一個哈希計算文件局部內容,在特定條件下對文件進行分片(利用弱哈希分析局部特點,確定分片大小)

然後使用一個哈希對文件每片計算哈希值,取這些值的一部分並連接起來,與分片條件一起構成一個模糊哈希結果

使用一個字符串相似性對比算法判斷兩個模糊哈希值的相似度有多少,從而判斷兩個文件的相似程度。

對文件的部分變化(包括在多處修改、增加、刪除部分內容),使用模糊哈希均能發現與源文件的相似關係,是目前判斷相似性較好的一種方法。

模糊哈希的由來

 在有意或無意的改動之後,如何去判斷文件是否相似?

最直接的辦法就是:對文件的每個字節逐一對比檢查。

顯然,採用“指紋”這樣的數字特徵會比較容易實現相似性對比。此時,密碼學上的哈希函數正來擔當文件的“指紋”。

但是,若是文件中只是變更了一個字節,那麼簡單的哈希函數得到的指紋對比結果便不盡人意。

後來,進一步出現了“分片哈希”,問題依舊沒有得到解決。(固定間隔分片,分別計算哈希值)

直到模糊哈希出現。

       其思想是:不再固定長度分片,而使用文件局部數據的特點來決定是否分片,使得局部的變化(包括修改、增加、刪)             隻影響局部的分片方法,而不會將影響擴散至其他分片點。

模糊哈希的組成

  1. 一個弱哈希算法:分析局部內容特點,得出分片條件,並進行分片
  2. 一個強哈希算法:計算出每個分片的模糊哈希值,並連接得到整個文件的模糊哈希值。
  3. 一個壓縮映射算法:將每片的模糊哈希值映射爲一個更短的值
  4. 一個比較算法:用於對兩個模糊哈希值計算相似程度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章