ハッシュ生成
任意のテキストのMD5・SHA-1・SHA-2ハッシュ値を端末内で計算します。
出力
上に貼り付けるか入力すると、ここに結果が表示されます。
ファイルは端末の外に出ません
このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。
使用例
例:会員のメールアドレスのSHA-256が、プログラムの出力と合うか1件だけ確かめる
社内システムで、会員のメールアドレスを照合用にSHA-256で保存しています。新しく書いたプログラムの出力が正しいか確かめるため、テスト用のアドレス「taro@example.jp」を貼り付け、アルゴリズムは初期値のSHA-256のまま「ハッシュを生成」を押します。
- 文字列はUTF-8のバイト列にしてから計算されます。結果は16進数の小文字64文字(256ビット)で、430116ef8e3354019be1e95115092c048e55f573160d0f4dc6b978b2ebe217a6 です。
- プログラムの出力が違う値なら、入力のどこかが違います。下の表のように、大文字が1つ、末尾の半角スペースや全角スペース、改行が1つ入るだけで、まったく別の値になります。
- 照合に使うなら、「前後の空白を取る」「小文字にそろえる」をハッシュ化の前にプログラム側で決めておくと、同じアドレスが別人として扱われません。
| 入力 | SHA-256(先頭16文字) |
|---|---|
| taro@example.jp | 430116ef8e335401… |
| Taro@example.jp(先頭が大文字) | 7af7c3974eab7433… |
| taro@example.jp(末尾に半角スペース) | f6d22edac403f650… |
| taro@example.jp(末尾に全角スペース) | eb5c8f4ef4adc0b7… |
| taro@example.jp(末尾に改行) | 041423bfe28d3bee… |
64文字が最後まで一致すれば、プログラムは正しく計算しています。同じアドレスをMD5にすると32文字(eacb5b6ff480ff98…)、SHA-512なら128文字です。値の長さから、相手がどのアルゴリズムを使ったかの見当もつきます。
使い方
- ハッシュ化したいテキストを貼り付けます。UTF-8のバイト列として処理されるため、同じUTF-8ファイルに対するsha256sumやopenssl dgstの結果と一致します。
- アルゴリズムを選びます。新しい用途にはデフォルトのSHA-256が適切です。MD5とSHA-1は既存のチェックサムを照合する目的で用意しています。
- 入力するそばから結果が表示されます。ダイジェストが小文字の16進数で表示されます。
- 期待する値と比較します。1文字でも違えば入力が異なるということで、末尾の改行の有無だけでも結果は変わります。
よくある質問
- MD5やSHA-256をパスワードの保存に使えますか?
- 使えません。単純なハッシュは計算が速すぎて、攻撃者はGPUで毎秒数十億回の試行ができてしまいます。パスワードにはbcrypt、scrypt、Argon2idのような、意図的に遅くソルト付きのアルゴリズムを使ってください。このツールはチェックサムや指紋の確認用であり、パスワード保存用ではありません。
- MD5とSHA-1が「旧式」となっているのはなぜですか?
- どちらも実用的な衝突攻撃が存在し、異なる2つの入力から同じハッシュ値を意図的に作り出せます。偶発的なデータ破損の検出には今でも使えますが、署名や証明書など、攻撃者が入力を選べる場面では絶対に使ってはいけません。
- 他のツールで計算したハッシュ値と一致しないのはなぜですか?
- ほとんどの場合、バイト列が異なっています。末尾の改行、WindowsのCRLF改行、UTF-8のBOM、Shift_JISやUTF-16といった別の文字コードなどが典型的な原因です。ハッシュは見た目の文字ではなくバイト列に対して計算されます。
- ハッシュ値の長さでアルゴリズムが分かりますか?
- 16進数の文字数で見当がつきます。MD5は32文字、SHA-1は40文字、SHA-256は64文字、SHA-384は96文字、SHA-512は128文字です。結果には「ビット数」も表示されます(文字数×4)。
- 全角と半角で値は変わりますか?
- 変わります。半角の「A」はUTF-8で1バイト、全角の「A」は3バイトと、見た目が似ていてもバイト列が違うからです。ひらがなや漢字もUTF-8(多くは1文字3バイト)として計算するので、Shift_JISで保存したファイルのハッシュとは一致しません。
- テキストではなくファイルのハッシュを計算できますか?
- このページはテキスト専用です。ファイルの場合は、ファイルを分割して読み込む専用のファイルハッシュツールが適しています。バイナリの内容をテキスト欄に貼り付けるとバイト列が変わってしまいます。
- ハッシュを計算するためにテキストがアップロードされますか?
- いいえ。SHA-1・SHA-256・SHA-384・SHA-512はブラウザのWeb Crypto API、MD5はページ内の小さな実装で計算します。通信は一切発生しないため、シークレットやトークン、個人情報を安全にハッシュ化できます。