ファイルや文字列のハッシュ値を、MD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC32 でまとめて計算します。公式サイトに載っているチェックサムを貼り付ければ、ダウンロードしたファイルと一致するかをその場で確かめられます。ファイルはアップロードせず、ブラウザの中だけで計算します。
このブラウザでは Web Crypto API が使えないため、SHA 系の計算ができません(https のページで開いてください)。
ファイルはいったんメモリに読み込んで計算します。目安としてパソコンで 1〜2GB、スマホではそれより小さいファイルまで扱えます。
大文字・小文字、区切りのスペースやコロン、Base64 表記の違いは無視して比べます。1行に1つずつ、上のファイルと下のテキストの結果すべてと照合します。
Webhook の署名や API のリクエスト署名の確認に。鍵はこのページの中だけで使い、保存も送信もしません。
ハッシュ値は、データから決まった手順で計算する「指紋」のような短い値です。同じデータからは必ず同じ値が出て、1ビットでも違えばまったく別の値になります。このツールは、ファイルや文字列のハッシュ値を MD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC32 の6種類で一度に計算します。
よく使うのは、ソフトウェアやOSのイメージ(ISOファイル)をダウンロードしたあと、配布元が公開している SHA-256 などの値と照らし合わせて、途中で壊れていないか・すり替えられていないかを確かめる場面です。照合欄に公式の値を貼れば一致・不一致がすぐわかり、SHA256SUMS のような「ハッシュ値+ファイル名」の一覧も、ファイル名ごとに照合します。ほかに、2つのファイルが同じ中身かの確認、プログラムで計算した値の検算、Webhook の HMAC 署名のデバッグにも使えます。
16進数で書いたときの文字数は、CRC32 が8文字、MD5 が32文字、SHA-1 が40文字、SHA-256 が64文字、SHA-384 が96文字、SHA-512 が128文字と決まっています。公式サイトの値に種類が書かれていなくても、長さを数えれば見当がつきます。照合欄で一致しなかったときは、長さから推測した種類を表示します。
MD5 は2004年、SHA-1 は2017年に、同じハッシュ値になる別のデータ(衝突)を作る方法が実際に示されています。通信中の偶然の破損を見つける用途ならいまも役に立ちますが、悪意のある改ざんを見抜く目的では SHA-256 以上を使います。CRC32 はZIPファイルなどの誤り検出用で、暗号的な強さはありません。また、パスワードの保存に SHA-256 をそのまま使うのは不適切で、bcrypt や Argon2 のような専用の方式を使います。
文字列のハッシュ値は、文字コードと改行で変わります。たとえば echo "abc" | sha256sum は末尾に改行が付いた「abc+改行」の値になり、「abc」だけの値とは一致しません(echo -n なら一致します)。Windows で作ったテキストは改行が CRLF です。このツールは UTF-8 で計算し、改行コードと末尾の改行を切り替えられます。
| 環境 | コマンドの例(SHA-256) |
|---|---|
| Windows(コマンドプロンプト) | certutil -hashfile ファイル名 SHA256 |
| Windows(PowerShell) | Get-FileHash ファイル名 |
| Mac | shasum -a 256 ファイル名 |
| Linux | sha256sum ファイル名 |
certutil や Get-FileHash は大文字で表示しますが、16進数の大文字と小文字は同じ値です。