2

MD*やSHA*などの標準アルゴリズムの実装を作成したとします。それが正しいことをどのようにして知ることができますか?同じアルゴリズムの異なる実装は同じダイジェストを生成する必要がありますか?

4

2 に答える 2

5

参照ドキュメント自体には、使用できる少数の例が含まれています。(たとえば、のハッシュ"abc"はすべての参照ドキュメントにあります。)さらに、Aaron Giffordは、http: //www.adg.us/computers/sha.htmlで多数のテストケースを利用できるようにしました。特に、彼はいくつかの境界ケース(テキストが正確にブロックの長さ、または1つ以下、および他のいくつかの特別な長さである場合)のテストを行っています。実装がこれらすべての正しい値を計算する場合、次のようになります。それが正しい可能性が高いです。

于 2012-12-24T10:24:56.083 に答える
3

はい、そうです。ただし、一部のハッシュアルゴリズムにはバリエーション/設定が付属しているため、その場合はそれらを一致させる必要があります。

良い例は、ダウンロードが正しいことを確認できるようにMD5が頻繁に提供される方法です。これが機能するためには、MD5ハッシュ実装がすべての実装で同じ結果を生成する必要があります。

于 2012-12-24T10:17:09.777 に答える