ハッシュ生成ツール

テキストからSHA-1・SHA-256・SHA-384・SHA-512ハッシュ値を生成します

ハッシュ生成ツールとは

ブラウザ内蔵のWeb Crypto API(SubtleCrypto)を使用して、入力テキストからSHA(Secure Hash Algorithm)ハッシュ値を生成するツールです。データはすべてブラウザ内で処理され、外部サーバーには送信されません。

よくある質問

SHA-256とSHA-512はどちらを使うべきですか?

一般的なデータ整合性検証には SHA-256 で十分です。より高いセキュリティが必要な場面(軍用、長期間保存する重要文書)では SHA-512 を選択してください。SHA-1 は 2017年に Google が衝突攻撃の実証(SHAttered)に成功しており、新規システムでの使用は推奨されません。MD5 は更に古く、現在は ファイル整合性確認程度の用途のみ。

パスワードのハッシュ化に使えますか?

いいえ、SHA-256/512 はパスワード保存には不適切です。SHA系のハッシュは高速計算できるため、ブルートフォース攻撃に弱いという特性があります。パスワードには bcrypt、Argon2、scrypt、PBKDF2 など、計算コストを意図的に高くした「パスワード専用ハッシュ関数」を使用してください。SHA系は データ整合性検証、トランザクションID、ファイル指紋などに適しています。

入力テキストは安全ですか?

はい、本ツールはブラウザ内蔵の Web Crypto API(SubtleCrypto)を使用してハッシュ計算を行うため、入力テキストはst0z.comのサーバーや第三者に送信されることはありません。社外秘の文書、APIキー、認証トークンを含むデータの整合性確認も安全に行えます。

ハッシュ値から元のテキストを復元できますか?

いいえ、ハッシュ関数は数学的に「一方向関数」で、ハッシュ値から元のテキストを逆算で復元することは事実上不可能です。ただし「レインボーテーブル」攻撃(よくあるパスワードのハッシュをあらかじめ計算しておく方法)には脆弱で、これがパスワード保存時に「ソルト」を加える理由でもあります。

なぜ短いテキストでも長いハッシュ値になるのですか?

ハッシュ関数の特性として、入力の長さに関わらず固定長の出力を返します。SHA-256 は常に 256ビット(64文字の16進数)、SHA-512 は 512ビット(128文字)です。これにより、入力の大きさを推測されないという利点もあります。1文字の入力でも数GBのファイルでも、出力サイズは同じです。

ハッシュの主な用途は?

(1) ファイル整合性検証(ダウンロード時のチェックサム)、(2) ブロックチェーンのブロックID(Bitcoinは SHA-256 を二重使用)、(3) Git のコミットID(SHA-1 ベース)、(4) HMAC(メッセージ認証)、(5) Content-Addressable Storage(IPFS等)、(6) パスワード(ただし bcrypt 等が推奨)、(7) JWT署名、(8) デジタル署名の前段、など多岐にわたります。

ソルト(salt)とは何ですか?

ソルトは、ハッシュ計算時に入力テキストに付加するランダムな文字列です。同じパスワードでも、異なるソルトを使うことで異なるハッシュ値になります。これによりレインボーテーブル攻撃を無効化し、データベースから複数のパスワードハッシュが流出しても一括解読されにくくなります。本ツールはソルト機能を提供していないため、パスワード用途では bcrypt 等の専用ライブラリを使用してください。

同じ入力で同じハッシュ値になりますか?

はい、ハッシュ関数は決定的(deterministic)で、同じ入力には常に同じハッシュ値が返ります。これにより「ファイルのハッシュ値を比較してデータが改ざんされていないか確認する」用途が可能です。ただし入力が1ビット違うだけで全く異なるハッシュ値になる「アバランシェ効果」もハッシュ関数の重要な特性です。