2016-03-09 12 views
2

我有2個相同的圖像具有不同的圖像屬性和文件屬性(例如CreationDate等)。當我計算散列時,我得到不同的散列。有什麼辦法可以跳過這些屬性並計算哈希以獲得相同的哈希值?HashAlgorithm.ComputeHash

等待幫助。 謝謝

+0

添加了一個可能與您的應用程序無關的邊緣案例。 –

回答

4

你可以將read the image data轉換成字節數組和hash that byte array

這樣,就不會考慮元數據的差異。

由於2D數據讀入1D數組,因此可以構造兩個具有不同維數的圖像具有相同散列的情況。例如,考慮一個2x2圖像和一個4x1圖像。 R表示紅色和B表示藍色(只是爲了選擇兩個顏色)

RB 
BR 

RBBR 

兩者將具有相同的散列碼。如果這對你很重要,則在散列之前將圖像的寬度和高度預先(或附加)到字節數組中。

+0

謝謝!有什麼解決方案的視頻格式? – Kishan

+0

涉及的數據更多,但基本方法相同。您可能可以從視頻中間抓取幾秒鐘的數據,並在性能很關鍵時使用該數據。我不會抓住開始或結束,因爲有些視頻具有相同的導入(例如,如果同一家公司製作了它們) –