0
我明白像md5這樣的散列函數可以用來判斷兩個文件(或數據集合)是否相似。即使更改一個位也會更改任何文件的散列值。除了這些信息,在比較兩個散列函數時還有其他信息,比如兩個文件的不同程度或更改的位置。是否有任何可用於獲取這些信息的散列函數通過比較兩個文件的散列值可以檢索到哪些其他數據?
我明白像md5這樣的散列函數可以用來判斷兩個文件(或數據集合)是否相似。即使更改一個位也會更改任何文件的散列值。除了這些信息,在比較兩個散列函數時還有其他信息,比如兩個文件的不同程度或更改的位置。是否有任何可用於獲取這些信息的散列函數通過比較兩個文件的散列值可以檢索到哪些其他數據?
如果散列函數是加密安全的,則無。
如果您從兩個文件中得到兩個哈希值,那麼您唯一可以判斷的是文件是否完全一點一點地完全相同(相同的哈希值)。
散列函數的一些屬性是散列的任何最後一位取決於消息的多個位,並且消息中單個位的改變將導致完全不同的散列,在此範圍內第二個散列不能與任何其他可能的散列區分開來。
即使像md5這樣有點脆弱的散列函數,攻擊者可以做的主要事情是創建第二個文件散列到相同的最終散列(碰撞)。不是真的推斷兩個文件的相關性。爲了做到這一點,哈希函數必須非常弱。
加密散列只會告訴你文件是否相同,而不是相似。此外,您應該使用抗衝突散列,例如SHA-2,但不使用MD5或SHA-1。 – CodesInChaos 2014-12-03 13:36:26