CRC32 ハッシュ生成

無料オンライン CRC32 ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。

General
Password Hashing / KDF
Specialized
Deprecated
出力

結果がここに表示されます...

入力 ハッシュを計算

Usage Guide

CRC32について

CRC32(巡回冗長検査、32ビット)は、多項式除算に基づく誤り検出アルゴリズムです。CRC-32/ISO-HDLCポリノミアル(0xEDB88320、反転)を使用して、任意の入力から32ビット(8桁の16進数)のチェックサムを生成します。CRC32はZIPアーカイブ、Ethernetフレーム、gzip、PNGファイルで偶発的なデータ破損を検出するために広く使用されています。

CRC32は暗号学的ハッシュ関数ではありません。セキュリティ上の保証は一切提供されません——衝突(コリジョン)は数ミリ秒で意図的に作成でき、改ざんに対する耐性もありません。パスワードハッシュ、デジタル署名、認証、その他のセキュリティ上重要な用途にCRC32を使用しないでください。代わりに SHA-256 または SHA-3 を使用してください。

使用手順

CRC32は一方向チェックサムです——入力から固定のチェックサムを計算し、逆算することはできません:

1. 入力チェックサムを計算したいテキストを入力ボックスに貼り付けるか入力します
2. CRC32を計算「計算」ボタンをクリックして、WebAssembly経由でローカルにチェックサムを計算します
3. 結果をコピー「コピー」ボタンをクリックして8文字の16進数結果を取得します(例:414FA339)
プライバシー保護:すべての計算はWebAssembly経由でブラウザ内で完全に実行されます。データがサーバーに送信されることはありません。

出力形式

CRC32は入力の長さに関係なく、常にちょうど8桁の16進数(32ビット/4バイト)を出力します。同じ入力は常に同じ出力を生成します。1文字変更するだけで完全に異なるチェックサムが生成されます(アバランシェ効果)。例:「hello」→「3610A686」。

出力長常に8桁の16進数(32ビット)
文字セット0〜9とA〜F(大文字の16進数)
決定論的同じ入力は常に同じ出力を生成
感度1ビット変化で出力の約50%のビットが変化

CRC32と暗号学的ハッシュ関数の違い

CRC32と暗号学的ハッシュ(SHA-256、SHA-3、BLAKE2)は根本的に異なる目的を持っており、混同してはなりません:

CRC32の目的偶発的なデータ破損の検出(ビット反転、伝送エラー)
暗号ハッシュの目的意図的な改ざんの検出、データ認証、パスワード保存
CRC32の衝突容易——誰でも数ミリ秒で同じCRC32を持つ入力を作成できる
CRC32の速度非常に高速——ハードウェア向けに最適化され、Ethernet、ZIP、PNGで使用
セキュリティ上の整合性検証には SHA-256 SHA-3 または BLAKE2 を使用してください。CRC32は信頼できる環境でのエラー検出にのみ適しています。

FAQ

Q: CRC32はファイルの整合性検証に安全ですか?

A: いいえ。CRC32は偶発的な破損(例:伝送中のビット反転)しか検出できません。 攻撃者は合法的なファイルと同じCRC32を持つ悪意のあるファイルを簡単に作成できます。 セキュリティ上重要なファイル整合性には、常に SHA-256 またはより強力なハッシュを使用し、理想的にはデジタル署名と組み合わせてください。

Q: 異なる入力が同じCRC32になるのはなぜですか?

A: CRC32は任意の入力をわずか2^32(約43億)の可能な値にマップするため、衝突は数学的に不可避です。さらに重要なのは、GF(2)上でのCRCの線形数学的構造により、意図的な衝突の作成が極めて容易であることです——任意のメッセージに短いサフィックスを追加するだけで、マイクロ秒で任意のCRC32値を強制することができます。

Q: CRC32は実際にどこで使用されていますか?

A: CRC32は速度と簡潔さが重要な非セキュリティコンテキストで広く使用されています:ZIPとgzipアーカイブは伝送エラーを検出するためにCRC32を格納します;Ethernet(802.3)はすべてのパケットに32ビットCRCフレームチェックシーケンス(FCS)を追加します;PNGイメージチャンクにCRC32が含まれます;多くのファイルシステムのディスクセクターチェックサム;zlibとdeflateストリーム検証。これらはすべてCRC32のランダムエラーを検出する能力にのみ依存しており、意図的な攻撃には対応していません。

Q: CRC32とMD5の違いは何ですか?

A: どちらも高速で固定長の出力を生成しますが、根本的に異なります: MD5 はセキュリティのために設計された暗号学的ハッシュ(128ビット/32桁の16進数)ですが、現在は破られています。CRC32はエラー検出のみのために設計された非暗号学的チェックサム(32ビット/8桁の16進数)です。CRC32はより高速ですが、衝突耐性はるかに弱いです。今日ではどちらもセキュリティ目的に使用すべきではありません——SHA-256またはBLAKE2を優先してください。

Q: 異なるデータが同じCRC32値を持つことはありますか?

A: はい——これを衝突と呼び、CRC32では意図的に作成することが非常に容易です。2つの全く異なるファイルや文字列が同じ8文字のCRC32値を共有できます。これはエラー検出チェックサムでの期待される動作であり、CRC32をセキュリティメカニズムとして使用してはならない主な理由の一つです。

Q: CRC32はパスワードハッシュに使用できますか?

A: 絶対にできません。CRC32は暗号学的ハッシュではなく、パスワードハッシュに必要なプロパティを一切持ちません:非常に高速(毎秒数十億回の試行が可能)、衝突の作成が容易、ソルティングのサポートがありません。Argon2id、bcrypt、scryptなどの専用パスワードハッシュアルゴリズムを使用してください。ガイダンスについては OWASP パスワードストレージチートシート を参照してください。

Use Cases

推奨:ZIP / gzip アーカイブチェックサム

ZIPとgzipは保存または転送中のファイル破損を検出するためにCRC32を使用します。これが典型的なユースケースです:信頼できる送信者がCRC32を計算し、受信者が偶発的なビットエラーを検出するために検証します。敵対的なコンテキストは想定されていません。

Recommended Configuration:
  • ✅ ZIP/gzip内部整合性のためのCRC32(規格準拠)
  • ✅ PNGチャンク検証のためのCRC32
  • ✅ gzip/zlibストリーム検証のためのCRC32
  • ❌ 意図的なファイル改ざんの検出にCRC32を使用しないこと
推奨:ネットワークパケットエラー検出

Ethernet(IEEE 802.3)はすべてのフレームに32ビットCRCフレームチェックシーケンスを追加します。ハードウェアがこれをワイヤースピードで計算・確認します。エラーはランダム(ノイズ)であり敵対的でなく、速度が重要なため、CRC32はここで優れています。

Recommended Configuration:
  • ✅ Ethernet、iSCSI、SCTPパケット検証のためのCRC32 / CRC-32C
  • ✅ シリアル/UART通信エラー検出のためのCRC32
  • ❌ ネットワーク通信の保護には不適切——TLS/HMACを使用すること
推奨:組み込みシステムデータ検証

マイクロコントローラーと組み込みファームウェアは、フラッシュメモリの内容、EEPROMデータの整合性、ブートイメージの正確性を検証するためにCRC32を使用します。ハードウェアCRCユニット(例:STM32 CRCペリフェラル)は1バイトあたり1クロックサイクルで計算します。

Recommended Configuration:
  • ✅ ファームウェアイメージ検証のためのCRC32(非セキュリティブートチェック)
  • ✅ EEPROM / NVMデータ整合性のためのCRC32
  • ✅ 通信プロトコルフレーミングのためのCRC32
  • ❌ セキュアブートには暗号署名(ECDSA/RSA)と組み合わせること
許容:非セキュリティデータの重複排除

CRC32はチェックサムでデータをバケット分けして重複候補を見つける高速な第一パスフィルターとして使用できます(衝突が許容される場合、例えば二次比較で等価性を確認)。セキュリティ上重要なストレージで唯一の重複排除キーとしてCRC32単独で使用しないでください。

Recommended Configuration:
  • ✅ バイト比較の前の高速プレフィルターとしてのCRC32
  • ⚠️ 重複排除キーとしてのCRC32単独(衝突リスク:約43億分の1)
  • ❌ セキュリティ要件のあるコンテンツアドレス可能ストレージへのCRC32
  • 💡 integrity保証付きの重複排除にはBLAKE2またはSHA-256を検討
非推奨:あらゆるセキュリティ目的

CRC32は認証、攻撃者に対する整合性保護、パスワードハッシュ、デジタル署名、セキュリティコンテキストでのコンテンツフィンガープリンティングに絶対に使用してはなりません。セキュリティ上重要なハッシュには SHA-256 SHA-3 または BLAKE2 を使用してください。

Recommended Configuration:
  • ❌ パスワードハッシュへのCRC32
  • ❌ デジタル署名またはMACへのCRC32
  • ❌ API認証トークンへのCRC32
  • ❌ セキュリティ上重要なファイル整合性検証へのCRC32
  • ✅ すべてのセキュリティユースケースにSHA-256 / SHA-3 / BLAKE2

ベストプラクティスまとめ

  • CRC32は信頼できる非敵対的なコンテキストでの偶発的なデータ破損の検出にのみ適しています。
  • CRC32はセキュリティを一切提供しません——衝突は容易に作成でき、暗号学的プロパティはありません。
  • セキュリティユースケース(認証、整合性、署名、パスワード)にはSHA-256、SHA-3、またはBLAKE2を使用してください。
  • CRC32はZIP、gzip、PNG、Ethernet、組み込みファームウェア内で正しい選択です——それがその設計されたスコープです。
  • 迷った場合はデフォルトでSHA-256を選択:高速で普遍的にサポートされ、暗号学的に安全です。

ディスカッション&フィードバック

0件のコメント
自分