CRC32 ハッシュ生成
無料オンライン CRC32 ハッシュ生成 ツール。100% ローカル処理 — データは端末の外に出ません。
結果がここに表示されます...
入力 → ハッシュを計算
Usage Guide
CRC32について
CRC32(巡回冗長検査、32ビット)は、多項式除算に基づく誤り検出アルゴリズムです。CRC-32/ISO-HDLCポリノミアル(0xEDB88320、反転)を使用して、任意の入力から32ビット(8桁の16進数)のチェックサムを生成します。CRC32はZIPアーカイブ、Ethernetフレーム、gzip、PNGファイルで偶発的なデータ破損を検出するために広く使用されています。
使用手順
CRC32は一方向チェックサムです——入力から固定のチェックサムを計算し、逆算することはできません:
出力形式
CRC32は入力の長さに関係なく、常にちょうど8桁の16進数(32ビット/4バイト)を出力します。同じ入力は常に同じ出力を生成します。1文字変更するだけで完全に異なるチェックサムが生成されます(アバランシェ効果)。例:「hello」→「3610A686」。
CRC32と暗号学的ハッシュ関数の違い
CRC32と暗号学的ハッシュ(SHA-256、SHA-3、BLAKE2)は根本的に異なる目的を持っており、混同してはなりません:
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を計算し、受信者が偶発的なビットエラーを検出するために検証します。敵対的なコンテキストは想定されていません。
- ✅ ZIP/gzip内部整合性のためのCRC32(規格準拠)
- ✅ PNGチャンク検証のためのCRC32
- ✅ gzip/zlibストリーム検証のためのCRC32
- ❌ 意図的なファイル改ざんの検出にCRC32を使用しないこと
推奨:ネットワークパケットエラー検出
Ethernet(IEEE 802.3)はすべてのフレームに32ビットCRCフレームチェックシーケンスを追加します。ハードウェアがこれをワイヤースピードで計算・確認します。エラーはランダム(ノイズ)であり敵対的でなく、速度が重要なため、CRC32はここで優れています。
- ✅ Ethernet、iSCSI、SCTPパケット検証のためのCRC32 / CRC-32C
- ✅ シリアル/UART通信エラー検出のためのCRC32
- ❌ ネットワーク通信の保護には不適切——TLS/HMACを使用すること
推奨:組み込みシステムデータ検証
マイクロコントローラーと組み込みファームウェアは、フラッシュメモリの内容、EEPROMデータの整合性、ブートイメージの正確性を検証するためにCRC32を使用します。ハードウェアCRCユニット(例:STM32 CRCペリフェラル)は1バイトあたり1クロックサイクルで計算します。
- ✅ ファームウェアイメージ検証のためのCRC32(非セキュリティブートチェック)
- ✅ EEPROM / NVMデータ整合性のためのCRC32
- ✅ 通信プロトコルフレーミングのためのCRC32
- ❌ セキュアブートには暗号署名(ECDSA/RSA)と組み合わせること
許容:非セキュリティデータの重複排除
CRC32はチェックサムでデータをバケット分けして重複候補を見つける高速な第一パスフィルターとして使用できます(衝突が許容される場合、例えば二次比較で等価性を確認)。セキュリティ上重要なストレージで唯一の重複排除キーとしてCRC32単独で使用しないでください。
- ✅ バイト比較の前の高速プレフィルターとしてのCRC32
- ⚠️ 重複排除キーとしてのCRC32単独(衝突リスク:約43億分の1)
- ❌ セキュリティ要件のあるコンテンツアドレス可能ストレージへのCRC32
- 💡 integrity保証付きの重複排除にはBLAKE2またはSHA-256を検討
非推奨:あらゆるセキュリティ目的
ベストプラクティスまとめ
- CRC32は信頼できる非敵対的なコンテキストでの偶発的なデータ破損の検出にのみ適しています。
- CRC32はセキュリティを一切提供しません——衝突は容易に作成でき、暗号学的プロパティはありません。
- セキュリティユースケース(認証、整合性、署名、パスワード)にはSHA-256、SHA-3、またはBLAKE2を使用してください。
- CRC32はZIP、gzip、PNG、Ethernet、組み込みファームウェア内で正しい選択です——それがその設計されたスコープです。
- 迷った場合はデフォルトでSHA-256を選択:高速で普遍的にサポートされ、暗号学的に安全です。