SHA-256 ハッシュ生成ツール
任意のテキストの SHA-256 ハッシュをブラウザー内で即座に生成。入力は UTF-8・16進・Base64、出力は16進または Base64。無料で、アップロードなしのプライベート処理です。
すべてブラウザ内で実行されます。データがアップロードされることはありません。
SHA-256 ハッシュ生成ツールとは?
SHA-256 は SHA-2 ファミリーで最も広く使われているアルゴリズムで、256ビット(16進64文字)のダイジェストを生成します。TLS 証明書、ソフトウェアのダウンロード、Bitcoin、数え切れないほどの API を守っています。このツールは、テキストまたは生のバイト列(16進または Base64)の256ビット SHA-256 ダイジェストを入力に合わせて計算し、64文字の16進数または Base64 で表示します。
SHA-256 ハッシュ生成ツールの使い方
- ハッシュ化するテキスト に入力を入力または貼り付けます。入力するたびにダイジェストが更新されます(空欄のときは空入力のハッシュが表示されます)。
- 入力エンコーディング を選びます。テキスト (UTF-8) は文字を UTF-8 としてハッシュ化し、16進数のバイト列 や Base64 はデコードした生のバイト列をハッシュ化します。
- 出力形式(16進の小文字、16進の大文字、Base64)を選び、コピー をクリックします。
例
abc
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
3バイトの ASCII 文字列「abc」の SHA-256(UTF-8、16進の小文字で出力)で、標準のテストベクターです。
SHA-256 ハッシュ生成ツールを使うべき場面
SHA-256 テキストツールは、文字列のハッシュ化に使います。ドキュメントやコードにある値の再現、テストベクターの作成、API 署名の入力の比較、プログラムが出力すべき値の確認などに向いています。ダウンロードしたファイルの検証には向きません。ファイルの内容をテキストボックスにコピーすると改行コードやエンコーディングが変わってしまうため、その場合は SHA-256 ファイルチェックサムツールを使ってください。パスワードの保存には専用のパスワードハッシュを、鍵付きの整合性確認には HMAC-SHA256 を使ってください。
SHA-256 ハッシュ生成ツールの仕組み
SHA-256 は、メッセージの後ろに1ビットの 1、0、64ビットのビッグエンディアンのビット長を付けて512ビットの倍数にパディングします。各ブロックは64ワードに拡張され、64ラウンドにわたって、Σ0、Σ1、Ch、Maj 関数と、最初の素数の立方根から導出した64個の定数を使い、8個の32ビット状態ワードに混ぜ込まれます。最終的な8ワードがダイジェストです。テキストは最初にバイト列(既定では UTF-8)に変換されるため、同じ文字なら常に同じハッシュになります。
一般的な使用例
- ユニットテストやフィクスチャで、文字列に期待される SHA-256 を確認する
- デバッガー、パケットキャプチャ、プロトコル仕様からコピーした16進バイト列をハッシュ化する
- 結果が食い違う2つのプログラミング言語の SHA-256 出力を比較する
- テキストから決定的な識別子やキャッシュキーを生成する
- ヘッダーや設定ファイル用に、SHA-256 ダイジェストの Base64 形式を取得する
セキュリティ注意事項
SHA-256 に対する実用的な攻撃は知られていません。また、素のハッシュはパスワードの保存にも向いていません。Argon2、scrypt、bcrypt のような、低速でソルト付きのパスワードハッシュを使ってください。すべての処理はブラウザー内で行われ、入力した内容がどこかに送信されることはありません。
よくある質問
SHA-256 は安全ですか?
はい。実用的な衝突攻撃やプリイメージ攻撃は知られておらず、衝突を見つけるにもおよそ 2^128 の計算量が必要です。NIST に承認されており、TLS、コード署名、ブロックチェーンなどで広く使われています。
ファイルの SHA-256 が、このテキストページで得た値と違うのはなぜですか?
テキストはその UTF-8 バイト列としてハッシュ化されるため、末尾の改行がなかったり、改行コードが CRLF だったりすると結果が変わります。ダウンロードしたファイルを検証するには、ファイルの正確なバイト列をハッシュ化する SHA-256 ファイルチェックサムツールを使ってください。
1文字変えただけでハッシュが大きく変わるのはなぜですか?
すべての暗号学的ハッシュが備えるように設計されたアバランシェ効果によるものです。入力の1ビットを反転すると、256ビットの出力のおよそ半分が変わるため、似た入力でも無関係なダイジェストになります。
末尾のスペースや改行は影響しますか?
はい。ハッシュはすべてのバイトを対象にするため、abc と、abc の後ろに改行が付いたものでは SHA-256 の値が異なります。入力に、ハッシュ化したいバイトだけが含まれていることを確認してください。