ハッシュ値の計算 — ファイルが途中で変わっていないか確かめる
文字列やファイルから MD5・SHA-1・SHA-256・SHA-384・SHA-512 のハッシュ値を計算します。公開されている値を貼り付ければ、どのアルゴリズムで一致したかも判定します。処理はブラウザの中だけで行われます。
ハッシュ値は、データから作られる決まった長さの短い文字列です。同じデータからは必ず同じ値が出て、1バイトでも違えばまったく別の値になります。だから「落としたファイルが配布元のものと同じか」を確かめるのに使えます。
ソフトウェアの配布ページに SHA-256 の値が書かれているのはこのためです。ダウンロードしたファイルの値を計算して、書かれている値と見比べれば、通信の途中で壊れていないか、別のものにすり替えられていないかが分かります。
アルゴリズムの使い分け
| 種類 | 長さ | 今の扱い |
|---|---|---|
| MD5 | 128ビット | 壊れている。改ざん検出には使えない |
| SHA-1 | 160ビット | 壊れている。新規には使わない |
| SHA-256 | 256ビット | 現在の標準 |
| SHA-384 | 384ビット | より長い鍵と組で使う |
| SHA-512 | 512ビット | 64ビット環境では速いことも |
MD5とSHA-1が「壊れている」意味
どちらも、違う内容なのに同じハッシュ値になるデータを意図的に作れることが実証されています。つまり「値が一致したから同じファイルだ」と言えなくなりました。改ざんの検出には使えません。
それでも残っているのは、通信の途中で壊れていないかを見るだけの用途や、古いシステムとの互換のためです。このツールにMD5があるのも、配布元がMD5しか公開していない場合に突き合わせるためです。
これから選ぶなら SHA-256 です。迷ったらこれを使ってください。
パスワードの保存には使いません
ここで計算できるハッシュは速いことが取り柄です。そしてその速さは、パスワードを守る用途では欠点になります。総当たりで試す側も同じ速さで計算できてしまうからです。
パスワードの保存には、わざと遅く作られた専用の方式(bcrypt、scrypt、Argon2 など)と、利用者ごとに違う塩(ソルト)を組み合わせます。SHA-256 をそのまま使う設計は、今では脆弱とみなされます。
ファイルの同一性を確かめる用途と、秘密を守る用途は別ものです。このツールは前者のためのものです。
使うときのこつ
- •文字列とファイルのどちらからでも計算できます。ファイルは中身のバイトから計算するので、ファイル名を変えても値は変わりません。
- •公開されている値を貼り付けると、どのアルゴリズムで一致したかを教えます。大文字と小文字の違いは無視します。
- •改行コードの違いでも値は変わります。テキストを貼り付けて比べるときは、末尾の改行の有無に注意してください。
- •ファイルも文字列もどこにも送信されません。計算はすべてブラウザの中で行われます。
よくある質問
配布元の値と一致しません。
ダウンロードが途中で切れている可能性があります。落とし直して、再度計算してみてください。それでも違う場合は、そのファイルを使わないでください。
どのアルゴリズムを使えばよいですか?
SHA-256 です。配布元が別の種類を公開している場合は、それに合わせてください。
ハッシュ値から元に戻せますか?
戻せません。一方向の計算です。ただし短い文字列は総当たりで当てられるので、秘密の保管には向きません。
大きなファイルでも計算できますか?
できますが、端末の性能によっては時間がかかります。
