Keccak-256 ハッシュ生成ツール

任意のテキストの Keccak-256 ハッシュをブラウザー内で即座に生成。入力は UTF-8・16進・Base64、出力は16進または Base64。無料で、アップロードなしのプライベート処理です。

Keccak-256

すべてブラウザ内で実行されます。データがアップロードされることはありません。

Keccak-256 ハッシュ生成ツールとは?

Keccak-256 は、NIST が FIPS 202 でパディングを変更する前の、元の Keccak ハッシュ(提出時の SHA-3 コンペティション優勝アルゴリズム、2011年)の256ビット出力版です。このツールは、テキストまたは生のバイト列(16進または Base64)の256ビット Keccak-256 ダイジェストを入力に合わせて計算し、64文字の16進数または Base64 で表示します。

Keccak-256 ハッシュ生成ツールの使い方

  1. ハッシュ化するテキスト に入力を入力または貼り付けます。入力するたびにダイジェストが更新されます(空欄のときは空入力のハッシュが表示されます)。
  2. 入力エンコーディング を選びます。テキスト (UTF-8) は文字を UTF-8 としてハッシュ化し、16進数のバイト列 や Base64 はデコードした生のバイト列をハッシュ化します。
  3. 出力形式(16進の小文字、16進の大文字、Base64)を選び、コピー をクリックします。

例

入力
abc
出力
4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45

3バイトの ASCII 文字列「abc」の Keccak-256(UTF-8、16進の小文字で出力)で、標準のテストベクターです。

Keccak-256 ハッシュ生成ツールを使うべき場面

Keccak-256 テキストツールは、文字列のハッシュ化に使います。ドキュメントやコードにある値の再現、テストベクターの作成、API 署名の入力の比較、プログラムが出力すべき値の確認などに向いています。ダウンロードしたファイルの検証には向きません。ファイルの内容をテキストボックスにコピーすると改行コードやエンコーディングが変わってしまうため、その場合は Keccak-256 ファイルチェックサムツールを使ってください。標準(FIPS、NIST)に基づく新規の作業には、代わりに SHA3-256 を使ってください。

Keccak-256 ハッシュ生成ツールの仕組み

Keccak-256 は、入力を 1088 ビットのブロック(キャパシティは 512 ビット)ごとに1600ビットの Keccak-f[1600] 状態へ吸収し、ブロックごとに24ラウンドの置換を適用します。パディングには、FIPS 202 で追加された 01 ドメインサフィックスを付けない、元の Keccak の規則 pad10*1(バイトでは 0x01 … 0x80)を使います。状態の先頭 256 ビットがダイジェストになるため、Keccak-256 と SHA3-256 はどの入力でも異なる結果になります。テキストは最初にバイト列(既定では UTF-8)に変換されるため、同じ文字なら常に同じハッシュになります。

一般的な使用例

  • ユニットテストやフィクスチャで、文字列に期待される Keccak-256 を確認する
  • デバッガー、パケットキャプチャ、プロトコル仕様からコピーした16進バイト列をハッシュ化する
  • 結果が食い違う2つのプログラミング言語の Keccak-256 出力を比較する
  • テキストから決定的な識別子やキャッシュキーを生成する
  • ヘッダーや設定ファイル用に、Keccak-256 ダイジェストの Base64 形式を取得する

セキュリティ注意事項

Keccak-256 に対する実用的な攻撃は知られていません。また、素のハッシュはパスワードの保存にも向いていません。Argon2、scrypt、bcrypt のような、低速でソルト付きのパスワードハッシュを使ってください。すべての処理はブラウザー内で行われ、入力した内容がどこかに送信されることはありません。

よくある質問

これは Ethereum で keccak256 と呼ばれているハッシュですか?

はい。Solidity の keccak256、Ethereum のアドレス(公開鍵の Keccak-256 の下位20バイト)、関数セレクター(シグネチャの Keccak-256 の先頭4バイト。例: transfer(address,uint256) → a9059cbb)は、いずれも FIPS 202 の SHA3-256 ではなく、この元の Keccak-256 を使っています。

Solidity のように16進値をハッシュ化するにはどうすればよいですか?

Solidity はバイト列をハッシュ化するため、keccak256(0x1234) は2バイトをハッシュ化します。入力エンコーディングで 16進数のバイト列 を選び、スペースなしで16進を貼り付けてください。テキストを選ぶと、ASCII 文字がハッシュ化されてしまいます。

1文字変えただけでハッシュが大きく変わるのはなぜですか?

すべての暗号学的ハッシュが備えるように設計されたアバランシェ効果によるものです。入力の1ビットを反転すると、256ビットの出力のおよそ半分が変わるため、似た入力でも無関係なダイジェストになります。

末尾のスペースや改行は影響しますか?

はい。ハッシュはすべてのバイトを対象にするため、abc と、abc の後ろに改行が付いたものでは Keccak-256 の値が異なります。入力に、ハッシュ化したいバイトだけが含まれていることを確認してください。

他のカテゴリを見る