ユーザーがファイルをアップロードできる Web サイトがあります。これらはサーバーに保存され、そのメタデータはデータベースに記録されます。簡単な整合性チェックを実装しています。つまり、「このファイルの内容は、アップロードされたときとバイト単位で同じですか?」などです。
例: のコンテンツのuserfile.jpg
場合、MD5 ハッシュは39f9031a154dc7ba105eb4f76f1a0fd4
で、SHA-1 ハッシュは878d8d667721e356bf6646bd2ec21fff50cdd4a9
です。このファイルのコンテンツが変更されたが、前後で同じ MD5 ハッシュを持つ場合、SHA-1 ハッシュも同じままである可能性は高いですか? (ハッシュを使用すると、ハッシュの衝突が発生することがあります。これは、2 つの異なるハッシュ アルゴリズムを同時に使用すると発生する可能性がありますか?)
それとも、ファイルの 2 つの異なるハッシュを計算しても意味がありませんか (整合性を検証するために他のメカニズムを試す必要があります)。
編集:偶発的な破損についてはあまり心配していませんが、ユーザーが気付かずにファイルを変更するのを防ぐことになっています(誕生日の攻撃と友人)。
私はおそらく 1 つのハッシュ、SHA-512 を使用します - チェックがパフォーマンスのボトルネックになることはそれほど多くありませんが、「Bruce Schneier が言うように、高速で安全でないシステムはすでに十分に存在します。」コメント」。