メインコンテンツへスキップ

Hash 生成

テキストからSHA-256・SHA-1・SHA-384・SHA-512のハッシュ値を即座に生成できる無料オンラインツール。Web Crypto APIで安全に処理し、ファイル整合性チェック・チェックサム検証・データ識別子生成に最適。ブラウザ完結でテキストは外部送信されません。

テキストからSHA-256やSHA-512などのハッシュ値をブラウザ上で即座に生成できるツールです。ファイルの整合性チェックやデータ検証など、ハッシュ値が必要な開発・運用の場面で活用できます。

Hash 生成
SHA-1160 bit
SHA-256256 bit
SHA-384384 bit
SHA-512512 bit

// Hash 生成の機能と特徴

ハッシュ関数の用途

ハッシュ関数は、ファイルの改ざん検知、パスワードの安全な保存、デジタル署名、データの重複排除など、セキュリティやデータ管理の幅広い場面で使われています。同じ入力からは常に同じ出力が得られる一方、出力から入力を逆算することは計算上不可能です。

アルゴリズムの比較

SHA-1は160ビットのハッシュ値を生成しますが、衝突攻撃が実証されており新規利用は非推奨です。SHA-256は256ビットで現在最も広く使われている標準的なアルゴリズムです。SHA-384とSHA-512はそれぞれ384ビット・512ビットのハッシュ値を生成し、より高いセキュリティレベルが求められる場面で使用されます。

パスワード保存との違い

SHA-256などの汎用ハッシュ関数は高速に動作するため、パスワードの保存には適していません。パスワードの保存にはbcryptやArgon2など、意図的に低速に設計された専用のハッシュ関数を使用してください。本ツールで生成するハッシュ値は、データの検証や識別用途に適しています。

Web Crypto APIによる安全な実装

本ツールはブラウザ標準の Web Crypto API(`crypto.subtle.digest`)を使用してハッシュ計算を行います。これによりOSやブラウザの暗号ライブラリと同じ実装が呼ばれ、JavaScriptで書かれた独自実装より高速・安全です。HTTPS環境でのみ動作するため、計算結果の改ざんリスクもありません。

// Hash 生成に関するよくある質問

ハッシュとは何ですか?
ハッシュ関数は任意のデータを固定長の文字列に変換する一方向関数です。同じ入力からは常に同じハッシュ値が生成されますが、ハッシュ値から元のデータを復元することは計算上不可能です。データの改ざん検知、デジタル署名、ファイル識別子(HTTPのEtagやGitのcommit hashなど)として広く使われています。
どのハッシュアルゴリズムを使うべきですか?
セキュリティ用途にはSHA-256以上を推奨します。SHA-1は衝突攻撃が実証されているため新規システムでの使用は避けてください(GoogleがSHAttered攻撃で実証済み)。MD5も同様に非推奨です。整合性チェックや単純な識別用途ならSHA-256で十分、政府・金融など最高水準が要求される場面ではSHA-512を選択します。
ブラウザ上で安全にハッシュ生成できますか?
はい、本ツールはブラウザ内蔵のWeb Crypto API(`crypto.subtle.digest`)を使用しており、入力データがサーバーに送信されることはありません。OSと同じネイティブ暗号ライブラリが呼ばれるため、独自実装より高速・安全です。HTTPS下で動作するため計算過程の改ざんリスクもありません。
ハッシュ値から元のテキストを復元できますか?
いいえ、ハッシュ関数は一方向関数であり、ハッシュ値から元のデータを復元することは計算上不可能です。これがハッシュ関数のセキュリティ上の重要な性質です。ただし辞書攻撃やレインボーテーブルで「よくあるパスワード」のハッシュは逆引きされうるため、パスワード保存にはソルト付きbcrypt/Argon2を使うべきです。
同じテキストでもアルゴリズムによってハッシュ値が異なるのはなぜですか?
各アルゴリズムは異なる計算手順と出力長を持つため、同じ入力でも全く異なるハッシュ値が生成されます。SHA-1は40文字(160bit)、SHA-256は64文字(256bit)、SHA-384は96文字、SHA-512は128文字(512bit)の16進数文字列を出力します。ハッシュ値を比較するときはアルゴリズムが一致していることを確認してください。
SHA-256とMD5のどちらが速い?
計算速度はMD5の方が速いですが、MD5は衝突攻撃が容易なため非推奨です。本ツールはセキュリティ重視のためMD5を提供していません。整合性チェックのみで速度を優先したい場合でも、現代のCPUではSHA-256も十分高速で(数GBのファイルでも数秒)、SHA-256を選んで困ることはほぼありません。
ファイルのハッシュ値も生成できますか?
現バージョンはテキスト入力のみ対応しています。ファイルのハッシュ値が必要な場合は、コマンドラインで `shasum -a 256 ファイル名`(Mac/Linux)や `certutil -hashfile ファイル名 SHA256`(Windows)を使ってください。本ツールでも将来的にファイル対応の拡張を検討しています。
改行コードの違いでハッシュ値は変わりますか?
はい、`\n`(LF)と`\r\n`(CRLF)はバイト列として異なるため、ハッシュ値も異なります。WindowsとMac/Linuxでファイルをやり取りする際に同じ内容でもハッシュが一致しない場合はこれが原因です。改行コードを統一してから比較するか、`git`のautocrlf設定で揃えてください。
ハッシュ値の大文字/小文字でセキュリティ的な違いはありますか?
いいえ、16進数表記の大文字`ABCDEF`と小文字`abcdef`は同じ値を表すため、ハッシュ値としての違いはありません。慣例的には小文字が広く使われ、Git・Linuxコマンド・HTTP Etagなども小文字を採用しています。本ツールでも大文字/小文字を切り替え表示できます。
同じテキストを何度もハッシュ化すると値は変わりますか?
いいえ、同じテキスト・同じアルゴリズムなら何度実行しても完全に同じハッシュ値になります(決定性)。これがハッシュ関数の重要な性質で、ファイルの同一性確認やデジタル署名の検証に利用されています。ランダム性が必要な場合はソルト(salt)を組み合わせてください。

// Hash 生成の使い方

  1. テキストを入力

    ハッシュ化したいテキストを入力欄に貼り付けます。JSONレスポンス、ファイル内容、パスワード(識別用途のみ)、API トークンなど任意の文字列をUTF-8として処理します。

  2. アルゴリズムを選択

    SHA-1(非推奨)・SHA-256(推奨・標準)・SHA-384・SHA-512からアルゴリズムを選択します。整合性チェックなどの非セキュリティ用途を含めて、まずはSHA-256を選んでおけば失敗しません。

  3. ハッシュ値を確認・コピー

    リアルタイムでハッシュ値が表示されます。大文字/小文字を切り替えて、Git・curl・APIレスポンスなどの形式に合わせて表示できます。コピーボタンでクリップボードに保存し、整合性確認や設定値として利用してください。

カテゴリ セキュリティ