ハッシュ関数が計算を行い、最終結果が固定長の文字列であることは知っています。これらは、ダウンロードしたファイルなど、ファイルが同じであることを確認するために使用されます。ファイルの所有者によって提示されたハッシュがあるため、この場合の整合性チェックは 2 つのハッシュの比較です。
これが唯一のファイル整合性チェックですか、それとも別のことがありますか?
ハッシュ関数が計算を行い、最終結果が固定長の文字列であることは知っています。これらは、ダウンロードしたファイルなど、ファイルが同じであることを確認するために使用されます。ファイルの所有者によって提示されたハッシュがあるため、この場合の整合性チェックは 2 つのハッシュの比較です。
これが唯一のファイル整合性チェックですか、それとも別のことがありますか?
バイトごとの比較以外の整合性チェックは、不可避的にハッシュに似ています。とはいえ、MD5 のような暗号化ハッシュが一般的に使用される前は、一般に「チェックサム」と呼ばれるより単純なアルゴリズムが使用されていました。一部はある程度標準化されています (たとえば、CRC32 を検索してみてください)。
これらの方法の品質は大きく異なります。CRC32 チェックサムは、たとえば、一般的な暗号化機能 (MD5 や SHA* など) のいずれかが整合性のかなり良い指標である一方で、かなりのサイズのファイルの破損や変更を簡単に見逃す可能性があります。
ただし、何をどのような目的で使用するかに注意してください。MD5 と SHA-1 は、悪意のある攻撃に対して安全であるとは見なされなくなりました (「より良いチェックサム」として使用するだけであれば問題ありません)。
ハッシュ関数は、ネットワークなどの多くの分野で整合性の理由から使用されます。一方、誠実さの概念が弱いため、ほとんどの場合回避されます。それらは任意の長さの入力を取り、固定長に生成します (通常はデータを圧縮します)。ハッシュ関数はどのようにチェックされますか? あなたが言ったように、受信者はメッセージのハッシュ関数を生成し、2 つの値をチェックします。さらに、この機能はメッセージの送信者を認証しないため、「デジタル署名」が存在します。誰かがメッセージに署名するとき、彼が特定のアクションを実行したことを否定できないため、署名は「否認防止」も提供します。したがって、使用する機能に注意する必要があります。MD5 は、SHA-1、SHA-2 とは対照的に弱いです。 . また、最も強力な mcrypt と scrypt を試すこともできます。