#️⃣ SHA-1ハッシュ生成器

テキストからSHA-1ハッシュを生成。注意:SHA-1はセキュリティ用途で非推奨です。SHA-256以上を使用してください。

SHA-1ハッシュ生成器について

このSHA-1ハッシュ生成器は、すべてブラウザ内で完結します。上の入力欄にテキストを入力または貼り付けし、生成をクリックすると、SHA-1ダイジェスト(40文字の16進数文字列)が計算されます。計算はWeb Crypto APIでローカルに行われ、サーバーへのアップロードは一切ありません。

⚠ セキュリティ上の注意:SHA-1は衝突攻撃に対して安全とは見なされなくなりました。GoogleのSHAttered研究(2017年)が実用的な衝突を実証しました。SHA-1はチェックサム・レガシー互換性・非セキュリティ場面のみに使用してください。セキュリティに関わる用途(デジタル署名・証明書・パスワードハッシュ)には、SHA-2/SHA-3ファミリーのSHA-256以上を使用してください。

SHA-1とは?

SHA-1(Secure Hash Algorithm 1)は、NSAが1995年に公開した暗号学的ハッシュ関数です。任意長の入力を受け取り、160ビット(20バイト)のハッシュを生成します。通常は40文字の16進数文字列として表現されます。アルゴリズムは512ビットブロック単位で入力を処理し、80ラウンドの演算を行い、メッセージスケジュール拡張と5つの32ビットワードからなる160ビット状態を使用します。

主な用途

  • ファイルチェックサム —— 公開されたSHA-1値と比較してファイル完全性を検証(多くのリリースパイプラインで依然一般的)。
  • GitオブジェクトID —— Gitはコミット・ツリー・ブロブ・タグの識別にSHA-1を使用。GitはSHA-256に移行中。
  • レガシーシステム —— 一部の古いプロトコル(TLS 1.0/1.1・X.509証明書)は依然SHA-1を参照。
  • コンテンツアドレス指定 —— 歴史的なコンテンツアドレス可能ストレージシステム。
  • ハッシュベースのルックアップ —— 非セキュリティ場面での重複排除やフィンガープリント。

既知のテストベクタ

以下の標準テスト値で実装の正確性を検証できます:

  • sha1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709
  • sha1("abc") = a9993e364706816aba3e25717850c26c9cd0d89d
  • sha1("hello") = aaf4c61ddcc5e8a2dabede0f89f6b39541b1b3c0
  • sha1("The quick brown fox jumps over the lazy dog") = 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

よくある質問

SHA-1は逆変換できますか? いいえ。SHA-1は一方向関数です。ハッシュから元の入力を復元することはできず、与えられた入力が既知のハッシュを生成するかどうかを検証することしかできません。

入力は送信されますか? いいえ。すべてのハッシュ計算はブラウザ内でWeb Crypto APIによって行われます。テキストがデバイスから外に出ることはありません。

なぜSHA-1は非推奨なのですか? 2017年、GoogleとCWI AmsterdamがSHAttered攻撃を発表し、約9,223,372,036,854,775,808回の演算で同じSHA-1ハッシュを持つ2つの異なるPDFファイルを生成しました。これによりSHA-1はデジタル署名や証明書には安全でなくなりました。現代のシステムは最低でもSHA-256を使用すべきです。

UTF-8に対応していますか? はい。入力は最初にUTF-8バイトとしてエンコードされてからハッシュ化されるため、非ASCII文字も正しく処理されます。

MD5との違いは? SHA-1は160ビット(16進数40文字)のダイジェットを生成し、MD5は128ビット(32文字)です。どちらも暗号学的には破られていますが、SHA-1はより大きな出力空間を持ち、実用的な攻撃に対してより長く耐えました。