ハッシュ生成器
SHA-1、SHA-256、SHA-384、SHA-512で暗号化ハッシュを生成。すべてWeb Crypto APIでローカル計算。
ハッシュ生成器について
このハッシュ生成器はすべてブラウザ内で完結します。上の入力欄に任意のテキストを貼り付け、ハッシュ生成をクリックするとSHA-1・SHA-256・SHA-384・SHA-512のハッシュを同時に計算します。すべての計算はWeb Crypto APIでローカルに行われ、入力がデバイスから外に出ることはありません。
ハッシュ関数とは?
暗号学的ハッシュ関数は任意の入力を受け取り、ダイジェストまたはハッシュと呼ばれる固定長のバイト列を生成します。優れたハッシュ関数は決定論的(同じ入力は常に同じ出力)、計算が高速、逆算が困難、衝突に強い(異なる入力が同じハッシュになることは稀)です。入力が1ビット変わるだけで出力は完全に異なります——これがアバランシェ効果です。
SHAファミリー
- SHA-1 —— 160ビット(40桁の16進数)のダイジェストを生成。元々NSAが設計。衝突攻撃に対して安全ではなくなったため、セキュリティ用途には使わないでください。
- SHA-256 —— 256ビット(64桁の16進数)のダイジェストを生成。SHA-2ファミリーの一つ。TLS、ビットコイン、コード署名、デジタル証明書で広く使用。
- SHA-384 —— 384ビット(96桁の16進数)のダイジェストを生成。SHA-512の切り詰めバリアントで、異なる初期値を使用。
- SHA-512 —— 512ビット(128桁の16進数)のダイジェストを生成。64ビットプラットフォームと高セキュリティ用途向けに設計。
主なユースケース
- データ完全性 —— 送受信前後のハッシュを比較し、ファイルやメッセージの改ざんを検出。
- パスワード保存 —— 平文ではなくパスワードのハッシュを保存。(実運用では純SHAではなくbcrypt・scrypt・Argon2などの遅いKDFを使用してください。)
- ファイル検証 —— ダウンロードのチェックサムを公開されているSHA-256値と照合し、破損や改ざんを発見。
- デジタル署名 —— 効率と安全性のため署名前にドキュメントをハッシュ化。
- コンテンツアドレッシング —— Git・IPFSなどのシステムがコンテンツの一意識別子としてハッシュを使用。
よくある質問
ハッシュは逆算できますか? いいえ。暗号学的ハッシュは一方向関数です。ハッシュから入力を復元することはできず、与えられた入力がそのハッシュを生成するか検証することしかできません。
入力はサーバーに送信されますか? いいえ。すべてのハッシュ計算はブラウザのWeb Crypto APIでローカルに行われ、アップロードされません。
ファイルのハッシュ化もできますか? 現バージョンはテキスト入力のみ対応。ファイルの場合はArrayBufferとして読み込み、crypto.subtle.digestに渡します。
どのアルゴリズムを使うべきですか? 新しいアプリケーションではSHA-256またはSHA-512を使用してください。SHA-1は既知の衝突脆弱性のためセキュリティ用途には非推奨です。