CoderTools

CRC計算機

テキスト、16進数、ファイル入力に対応した様々なCRCチェックサム計算

UTF-8テキストを入力、自動的にバイトに変換されます

CRCアルゴリズムについて

巡回冗長検査(CRC)は、デジタルネットワークや記憶装置において、生データの偶発的な変化を検出するために一般的に使用される堅牢な誤り検出符号です。システムに入力されるデータブロックには、その内容の多項式除算の剰余に基づく短いチェック値が付加されます。

読み出し時に計算が繰り返され、チェック値が一致しない場合、データ破損に対する是正措置を講じることができます。CRCは、バイナリハードウェアでの実装が容易で、数学的な分析も簡単であり、伝送路のノイズによって引き起こされる一般的なエラーを検出するのに特に優れているように設計されています。

サポートされているCRCプロファイル

このツールは、産業およびネットワークプロトコルで使用される幅広い標準CRCアルゴリズムを実装しています。各バリアントは、多項式、初期値、XOR出力、および反射プロパティによって定義されます。

アルゴリズム ビット幅 多項式 用途
CRC-88 bit0x07シンプルなデータチェック、センサー
CRC-16/Modbus16 bit0x8005Modbusプロトコル、産業用
CRC-16/CCITT16 bit0x1021X.25、HDLC、Bluetooth
CRC-3232 bit0x04C11DB7ZIP、Ethernet、PNG
CRC-32C32 bit0x1EDC6F41iSCSI、SCTP、Btrfs
CRC-64/ECMA64 bit0x42F0E1EBA9EA3693ECMA-182、XZ圧縮

一般的な用途

ネットワークパケット検証(イーサネットフレーム、IPパケット)
ファイルの完全性検証(ZIPアーカイブ、PNG画像)
産業用通信プロトコル(Modbus RTU、フィールドバス)
ストレージシステムのデータ検証(iSCSI、SSDコントローラ)
組み込みシステムのデータ伝送(IoTセンサー、USB)
ファームウェアおよびブートローダーの完全性チェック

よくある質問

CRCとは何ですか?暗号ハッシュとの違いは?

CRC(巡回冗長検査)は、データ転送や保存時の偶発的なビットエラーを検出するためのチェックサムアルゴリズムです。SHA-256などの暗号ハッシュとは異なり、CRCは意図的な改ざんへの耐性は設計されていません。攻撃者は任意のCRC値を生成するデータを作成できます。通信プロトコルのエラー検出にはCRCを、セキュリティが必要な完全性検証には暗号ハッシュを使用してください。

ユースケースに合ったCRCバリアントはどれを選べばいいですか?

CRC-32(ISO 3309)はイーサネット、ZIP、PNGファイルで広く使われています。CRC-16/MODBUSは産業プロトコルの標準です。CRC-16/CCITTはシリアル通信に適しています。CRC-8は組み込みシステムの短いメッセージに向いています。プロトコル仕様が特定の多項式と初期値を定義している場合は、必ずそれに合わせてください。

CRC結果が期待値と異なるのはなぜですか?

CRC結果は多項式、初期値、入出力のリフレクション、XOR出力の4つのパラメータに依存します。そのうちの1つでも一致しなければ異なる結果になります。また、入力がUTF-8、ASCII、生バイトのどれでエンコードされているかも確認してください。同じテキスト文字列でも異なるバイト列になり、異なるCRC値を生成することがあります。

CRC-16/MODBUSとCRC-16/CCITTの違いは何ですか?

どちらも16ビットCRCですが、多項式と初期値が異なります。CRC-16/MODBUSは多項式0x8005、初期値0xFFFF、入出力ともにリフレクションあり。CRC-16/CCITT(CRC-CCITTまたはCRC-16-IBMとも呼ばれる)は多項式0x1021、初期値0xFFFFを使用します。同じデータに対して全く異なる出力を生成します。

テキストだけでなく、バイナリファイルのCRCも計算できますか?

はい。バイナリデータの16進バイトを16進入力形式で貼り付けてください。ツールは文字が印刷可能かどうかに関わらず、生のバイト値を処理します。非常に大きなバイナリファイルにはcksum等のコマンドラインツールやPythonのbinascii.crc32()がより実用的です。

クイックメニュー

最近のツールはありません