事情是我有一個文件,有元數據的空間。我想在其中存儲一個用於完整性驗證的散列。問題是,一旦我存儲散列,文件和散列一起改變。雞/雞蛋問題:文件內部散列(包括散列)!可能?
我完全理解這是由md5/sha這樣的單向加密散列方法定義不可能的。
我也意識到存儲驗證數據的容器的可能性與作爲zip & co的內容分開。
我也意識到可以單獨計算哈希值並將其與文件一起發送,或者將其追加到末尾或客戶端計算哈希時忽略它的地方。
這不是我想要的。
我想知道是否有一個算法,它可能從散列本身的結果包含在其中的數據中獲得結果散列。
它不需要加密或滿足很多標準。它也可以基於一些啓發式方法,即在現實的時間量之後提供期望的結果。
我真的不是那麼喜歡數學,但是不可能有一些真正先進的指數模數多項式循環反向引用devision的東西,使這成爲可能?
如果不是,什麼(如果有)證明反對它?
我需要這個tis的原因是因爲我想(最終)存儲散列和MP4文件一起。其複雜的,但其他解決方案並不容易實施,因爲該文件走過一個糟糕的設計生產管道...
回答上述問題至少和這一個一樣難:[是否有MD5固定點,其中md5(x)== x?](http://stackoverflow.com/questions/235785/is-there- an-md5-fixed-point-where-md5x-x) – 2010-12-13 19:30:14
@Greg:reread。 OP意識到這對MD5和SHA來說是不可能的。 – 2010-12-13 19:31:52
它不是重複的,因爲它處理一個特殊的加密散列,問題是不同的,因爲它需要與它本身的功能相同。我的問題是關於更多的算法,還有非crypticals以及包含該散列的數據。本身並不是干涉哈希。 – 2010-12-13 19:33:46