ハッシュ値計算
ダウンロードしたファイルが改ざんされていないかの確認や、文字列のハッシュ値の確認に。ファイルは手元のブラウザだけで処理します。
🔒 入力内容はお使いのブラウザ内だけで処理され、サーバーには送信されません。
使い方
- 「テキスト」か「ファイル」を選びます。テキストは入力と同時に、ファイルは選んだ時点で計算を始めます。
- MD5、SHA-1、SHA-256、SHA-384、SHA-512 の5つの値が並びます。各行の「コピー」で1つずつ、「すべてコピー」で方式名付きでまとめてコピーできます。
- 配布元が公開しているハッシュ値と比べたいときは、「期待するハッシュ値」に貼り付けます。一致した方式に「一致」と表示されます。
- 大文字で表記された値と見比べるときは、「表記」を大文字に切り替えます。照合は大文字小文字を区別せずに行います。
仕様
| 項目 | 内容 |
|---|---|
| テキストの符号化 | UTF-8 です。末尾に改行は付けません。改行は入力欄のまま(LF)で計算します |
| SHA-1 / SHA-256 / SHA-384 / SHA-512 | ブラウザの Web Crypto API(crypto.subtle.digest)で計算します。https で開いている必要があります |
| MD5 | Web Crypto API には含まれないため、RFC 1321 に従って JavaScript で計算します。4MB ごとに処理を区切るため、大きなファイルでもページが固まりません |
| 期待値の照合 | 空白を取り除き、「SHA256: 」のような接頭辞があれば外してから比べます。桁数(32 / 40 / 64 / 96 / 128)から、どの方式の値かの見当も表示します |
| ファイル | FileReader でブラウザ内に読み込みます。サーバーへは送信しません |
ハッシュ値は、入力が1ビットでも違えば全く別の値になります。逆に、ハッシュ値から元のデータを復元することはできません。
こんな時に
- OS のイメージやインストーラをダウンロードした後、配布ページの SHA-256 と照合して破損や改ざんがないか確かめる。
- 2つのファイルが同じ内容かどうかを、中身を開かずに比べる。
- 開発中のプログラムが出力したハッシュ値が正しいか、同じ入力で確かめる。
注意
MD5 と SHA-1 は、同じハッシュ値を持つ別のデータを作れることが分かっています(衝突攻撃)。電子署名など安全性が必要な用途には使わず、配布元が SHA-256 を公開しているならそちらで照合してください。パスワードの保存用ハッシュにもこのツールは使わないでください。パスワードには bcrypt や Argon2 のような専用の方式を使うのが標準です。
よくある質問
ダウンロードしたファイルの検証はどうすればよいですか?
配布元のページに書かれているハッシュ値(SHA-256 が多い)をコピーし、「期待するハッシュ値」の欄に貼り付けます。次に「ファイル」を選んでダウンロードしたファイルを指定すると、計算が終わった時点でどの方式と一致したかを表示します。一致しなければ、ダウンロードが途中で失敗したか、ファイルが改ざんされている可能性があります。
MD5 や SHA-1 はもう使わない方がよいと聞きました。
同じハッシュ値を持つ別のデータを意図的に作れることが分かっているため、署名や改ざん検知のような安全性が必要な用途には向きません。ただし、転送中のデータの破損を見つける用途や、配布元が MD5 でしか公開していない場合の照合には今でも使われています。新しく選ぶなら SHA-256 以上にしてください。
大きなファイルでも計算できますか?
ファイル全体をメモリに読み込んでから計算するため、数百MB程度までが目安です。SHA 系はブラウザの機能(Web Crypto API)で高速に計算し、MD5 は JavaScript で少しずつ計算するため大きなファイルでは時間がかかります。計算中は進み具合を表示します。
テキストのハッシュ値が他のツールと違います。
文字コードと改行コードの違いが原因であることがほとんどです。このツールは文字を UTF-8 で符号化し、末尾の改行は付けません。コマンドラインの echo はよく末尾に改行を付けるため(echo -n で防げます)、その分だけ値が変わります。Shift_JIS で保存されたファイルの値を確かめたいときは、テキストではなくファイルとして読み込んでください。