SHA-1・SHA-256・SHA-512 でテキストのハッシュを計算する方法

テキストを貼り付けると、SHA-1・SHA-256・SHA-512 のダイジェストを小文字の16進数で返します。計算はこのブラウザタブ内で行われ、何も送信されません。同じテキストからは常に同じダイジェストが得られます。

ダイジェストは一方向の値で、元のテキストには戻せません。2つのテキストが同一かどうかの確認に使うもので、テキストを秘密にするためのものではありません。

  1. テキストを入力欄に貼り付けるか入力します。ファイルのアップロードには対応していません。
  2. SHA-1 を生成・SHA-256 を生成・SHA-512 を生成のいずれかを押すと、アルゴリズムと桁数とともにダイジェストが下に表示されます。
  3. コピーを押すと、16進数のダイジェストをクリップボードにコピーできます。
  4. テキストを編集すると表示中のダイジェストは消去され、画面の値は常に入力欄のテキストと対応します。クリアで両方を空にできます。

このページが計算するもの・しないもの

3つのアルゴリズム

SHA-1 は16進数40文字(160ビット)、SHA-256 は64文字(256ビット)、SHA-512 は128文字(512ビット)を出力します。いずれもテキストの UTF-8 バイト列に対して計算され、sha1sum・shasum・openssl dgst などのコマンドラインツールと同じバイト列を対象とするため、同じ入力からはどこでも同じ値が得られます。

違いは長さだけではありません。SHA-1 は2017年に実用的な衝突が実証されており(SHAttered 攻撃)、既存データとの互換性確認には使えても、新たなセキュリティ判断には適しません。現在の標準は SHA-256 と SHA-512 です。

ダイジェストの用途

ダイジェストはテキストの指紋のようなもので、入力が1文字、1スペースでも変われば値はまったく別になります。2つのダイジェストを比べれば、2つのテキストがバイト単位で同一かを素早く確認できます。

暗号化ではありません。鍵はなく、出力から元に戻す方法もありません。また、ダイジェストだけでは誰が書いたかを証明できません(テキストを変えられる人はハッシュも変えられるため)。パスワードの保存に SHA-1/SHA-256/SHA-512 をそのまま使うのは不適切で、bcrypt・scrypt・Argon2 のような低速でソルト付きの方式が必要です。

制限と実用上の注意

このページはテキスト専用です。ファイルは開けず、出力は16進数のみで、Base64 や HMAC、ソルトの入力欄はありません。ファイルのチェックサムには OS のコマンド(sha256sum・shasum・certutil など)を、HMAC にはサイト内の別のハッシュ&HMAC ジェネレーターをご利用ください。

大きな入力もローカルで処理されます(1メガバイトで数十ミリ秒程度)。ただし非常に大きなファイルにはコマンドラインツールの方が適しています。また、ブラウザのテキストエリアは CRLF の改行を LF に正規化するため、Windows のファイルから貼り付けたテキストは LF 形式でハッシュされます。ディスク上のファイルをそのまま計算すると CR バイトを含むため値が異なります。

最近使ったツール: