いくつかのデータの2つの部分のハッシュを知っている場合、それらのハッシュからの完全なデータのハッシュを計算できますか?
質問
いくつかのデータの2つ(またはそれ以上)の部分のハッシュを知っている場合、それらのハッシュからの完全なデータのハッシュを計算できますか?
これはどのハッシュタイプを実行できますか? SHA1、SHA256、MD5? (ハッシュのセキュリティは私のユースケースにとって重要ではありません。)
すなわち
data0 = '0123'
data1 = '45678'
all_data = data0 + data1
hash0 = hash(data0)
hash1 = hash(data1)
fnはそのように存在しますか
hash(all_data) == fn(hash0, hash1)
FNはMD5、SHA1、またはSHA256に存在しますか?
ありがとう、
クリス。
解決
簡潔な答え。いいえ。
ハッシュは最小限の逸脱のために完全に異なり、それらを計算できないまでこれが機能しないようにします。たとえそれらを計算できる場合でも、結果はあなたが選択できる可能性のリストになります。したがって、決定論的なものは何もありません。
他のヒント
ハッシュスルー data0
システムをいくつかの中間状態に置きます。君の hash(data1)
きれいな状態から計算されました。 Hash1を修正して、欠落している中間状態を補うことはできません(良いハッシュ関数の場合)。
所属していません StackOverflow