偽の渡された SHA-160 サムによってだまされたときにアプリケーションをテストしたいので、元の SHA-160 サムが再び発生するため、合計されるデータへの変更を計算したいと考えています。合計を計算するために C++ の Botan ライブラリを使用しています。
SHA-160 がオリジナルと同一になるように、約 1500 ビットのビット ストリームへの変更を計算するにはどうすればよいですか?
偽の渡された SHA-160 サムによってだまされたときにアプリケーションをテストしたいので、元の SHA-160 サムが再び発生するため、合計されるデータへの変更を計算したいと考えています。合計を計算するために C++ の Botan ライブラリを使用しています。
SHA-160 がオリジナルと同一になるように、約 1500 ビットのビット ストリームへの変更を計算するにはどうすればよいですか?
簡単に言えば、できません。
長い答えは次のとおりです。それは可能ですが、膨大な量の計算能力が必要です。ハッシュ アルゴリズムの全体的な目的は、衝突を見つけにくくすることです。衝突を簡単に見つけることができれば、ハッシュ アルゴリズムを使用する意味はほとんどありません。
テストの問題を解決するには、アプリケーションのファイル読み取り/ハッシュ計算部分を別のクラスに抽象化し、偽のハッシュ実装でそれをモックして、アプリケーションの残りの部分をテストすることをお勧めします。