CRC-32 チェックサムの計算
エンコード処理はすべてブラウザ内で完結します。データは送信されません
テキストの CRC-32 チェックサムを求めます。CRC は最も一般的な誤り検出符号です —— 改ざんには耐えられません(鍵がないので誰でも再計算できます)が、伝送や保存中の偶発的な破損は確実に検出します。ネットワークのフレーム、アーカイブ、ディスクのセクタ、ファームウェアのイメージが、いずれも完全性の確認に使っています。注意したいのは「CRC-32」が単一のアルゴリズムではなく一族だという点です。同じ多項式でも、初期値・入出力のビット反転・最終 XOR 値が違えば互換性のないチェックサムになり、しかも算出される数値は互いに無関係です。ここではよく使われる6つの変種を並べ、それぞれの用途を添えています。入力は UTF-8 バイトとして扱い、結果は zlib や各実装と 1 桁まで一致します。
機能
- 6つの変種:IEEE 802.3・Castagnoli(CRC-32C)・Koopman・BZIP2・JAMCRC・MPEG-2
- 出力は16進数(大文字・小文字を切替可)または10進数
- 日本語は UTF-8 バイトで計算し、zlib や各言語の実装と一致します
- 各変種に用途を明記 —— 切り替える前に相手側の仕様を確認してください
- テーブル駆動なので、数 MB の入力でもミリ秒で終わります
- 計算は端末内で完結し、内容がアップロードされることはありません
使い方
- 入力欄に内容を貼り付けると、結果がリアルタイムで表示されます
- 相手のシステムに合わせて変種を選びます(既定の IEEE が一般に「CRC-32」と呼ばれるものです)
- 必要に応じて16進数/10進数、大文字を切り替えます
- 「コピー」でチェックサムを取り出せます
よくある質問
- CRC-32・CRC-32C・CRC-32K は何が違うのですか?
- 多項式が違うので、同じデータでもまったく異なる3つの値になります。CRC-32(IEEE 802.3)は最も一般的なもので、zip・gzip・PNG が使っています。CRC-32C(Castagnoli)は iSCSI・SCTP・ext4 や一部のストレージシステムで使われ、ハードウェア実装が速くなるよう多項式が選ばれています。CRC-32K(Koopman)は 32 ビット CRC の中で最も検出能力が高く、高い信頼性が求められる場面で使われます。どれが必要かは相手側のシステム次第で、好みで選ぶものではありません。
- 他のオンラインツールと結果が違うのはなぜですか?
- ほとんどの場合、変種の選択ミスです。CRC-32 に初期値・ビット反転の有無・最終 XOR 値を加えると、互換性のない6つのアルゴリズムが導けます。しかもどれも「正しそうな8桁の16進数」を返します。相手がどの変種を使っているかを先に突き止めてください(プロトコル仕様に明記されているか、「123456789 を入れるとこの値」という検証値が添えられていることが多いです)。本ツールの各変種は CRC パラメータ目録の check 値に固定されています。
- CRC はハッシュや署名として使えますか?
- 使えません。CRC は偶発的な誤り(伝送ノイズ、ビット反転)を見つけるための設計で、意図的な改ざんには耐えられません —— 鍵がないため、改変したデータに対しても誰でも正しいチェックサムを再計算できます。改ざん検知には HMAC やデジタル署名を使ってください。「ダウンロードが壊れていないか」の確認なら CRC でも SHA-256 でも構いませんが、SHA-256 も同じくらい安価なので、現在はこちらが通例です。
- 空入力のチェックサムが全ゼロにならないのはなぜですか?
- 初期値があるためです。CRC-32 の初期値は 0xFFFFFFFF で、空入力のとき最終 XOR 値の 0xFFFFFFFF とちょうど打ち消し合って 00000000 になります。一方 CRC-32/MPEG-2 の最終 XOR は 0 なので、空入力では FFFFFFFF になります。これらのパラメータこそが「どれも CRC-32 を名乗るのに互換性がない」理由です。本ツールは空入力に対して空文字列を返し、チェックサムを表示しません —— たいていはまだ何も貼り付けていないだけだからです。
関連ツール
ファイルハッシュ
エンコードファイルをドロップするだけで MD5・SHA-1・SHA-256・SHA-512・CRC-32 を計算。ダウンロードの検証や改ざん検知に。ファイルは送信せず、端末内で処理します。
CRC-16
エンコードテキストの CRC-16 チェックサムを計算します。ARC・Modbus・XMODEM・KERMIT など9つの変種に対応し、用途も明記、16進数または10進数で出力します。
Hex 変換
エンコード16 進数とテキストを相互変換します。0x・\x・空白・コロンなどの表記に対応し、日本語は UTF-8 でバイト単位に正しく復元、バイト数も表示します。
ハッシュ計算
エンコードMD5・SHA-1・SHA-256・SHA-512 のダイジェストを計算します(旧システム向けの MD4・MD2 も可)。日本語も UTF-8 バイトで計算します。
Base64 変換
エンコードテキストを Base64 に変換し、Base64 からテキストへ戻します。日本語や中国語、emoji も UTF-8 として正しく処理。すべてブラウザ内で完結し、内容は送信しません。
URL エンコード
エンコード日本語や中国語、空白・記号を %XX にエスケープし、復元します。URL 全体とパラメータ値では方式が異なり、間違えるとリンクが開けません。ブラウザ内で処理します。