MD5 ハッシュがセキュリティ上推奨されなくなったことは承知していますが、ダウンロード/転送後にファイルが破損していないことを確認するためのチェックサムとして使用していますが、それでも問題ないと思いました。ギガバイトを超えるファイルでこの方法を使用した後、保存されたハッシュと生成されたハッシュが一致しないことがわかりました。これは、USBスティックを介してあるコンピューターから別のコンピューターに転送した後です。オンラインで検索したところ、一貫性のないハッシュを作成している可能性のある大きなファイルへの参照がいくつか見つかりましたが、決定的なものは何も見つかりませんでした。
ComputeHash(Stream inputStream)
ofを使っMD5CryptoServiceProvider
て転送前後のハッシュを作成しているので、異なる言語間などでバイト形式がめちゃくちゃになることはありません。また、ファイルからハッシュを再度作成しようとしましたが、2 回目は一致するハッシュが正常に作成されたようです。運が悪かっただけで、ファイルを USB スティックにコピーしたり、USB スティックからコピーしたりした後、実際にファイルが破損してしまったのでしょうか? それとも、これは MD5 の既知の問題であり、完全に破棄する必要がありますか? もしそうなら、理想的にはC#の標準としても利用できる最良の代替品は何でしょうか.SHA1は次善の選択肢ですか?