CRC 計算機
テキストやファイルから CRC-8・CRC-16・CRC-32・CRC-32C・CRC-64・Adler-32 のチェックサムを計算。15 アルゴリズム、16 進・10 進出力、大きなファイルはバックグラウンド Worker で処理。すべてブラウザ内で完結します。
CRC とは?
CRC(Cyclic Redundancy Check、巡回冗長検査)はデータ列を多項式除法で割って得られるチェックサムです。伝送や保存の過程で 1 ビットでも反転すると、受信データの CRC は送信側とほぼ必ず異なるため、偶発的な破損を検出できます。Modbus・HDLC・USB・イーサネット・ZIP など多くの規格が採用しています。
CRC と SHA-256 などの暗号ハッシュの違いは?
CRC は誤り検出コードであってセキュリティ用の部品ではありません。計算は速くランダムな破損を検出しますが、容易に逆算できます。好きな値を持つデータを作ることも簡単なので、真正性の確認・署名・パスワード保存には絶対に使えません。SHA-256 などの暗号ハッシュは一方向性と衝突耐性を持ち、まさにその用途向けです。
どのアルゴリズムに対応?
15 種類です:CRC-8/SMBUS、CRC-8/1-WIRE(Maxim)、CRC-8/DVB-S2、CRC-16/IBM(ARC)、CRC-16/CCITT-FALSE、CRC-16/KERMIT、CRC-16/XMODEM、CRC-16/MODBUS、CRC-24(OpenPGP)、CRC-32、CRC-32/MPEG-2、CRC-32/JAMCRC、CRC-32C(Castagnoli)、Adler-32、CRC-64/GO-ECMA。組込み・ネットワーク・ファイル形式でよく求められるバリアントをカバーします。
同じデータで CCITT-FALSE・KERMIT・XMODEM の結果が違うのは?
3 つとも同じ多項式(0x1021)を使いますが、初期値・ビット反射・最終 XOR が異なるためです。「CRC-16」とだけ言っても曖昧なので、プロトコルや機器が指定する正確なバリアントを確認してから、ここで対応するものを選んでください。
UTF-8 と Latin-1 の違いは結果に影響する?
影響します。CRC はバイト列に対して計算され、エンコーディングがテキストをどのバイト列にするかを決めるからです。純粋な ASCII なら両者は同じですが、é や 中 などの文字は異なります。UTF-8 は 1 文字 2〜3 バイト、Latin-1 は 1 バイト(中 は表現できません)。受信側システムが期待するエンコーディングを選んでください。
大きなファイルはどう処理される?
ファイルタブではファイルを Web Worker に渡し、メインスレッドの外でチャンクごとに計算します。進捗バーが表示され、ウィンドウは固まらず、数十 MB のファイルも一瞬で終わります。ファイルが端末の外に出ることはありません。
16 進と 10 進の両方を出す理由は?
仕様書・データシート・デバッガでは 16 進が慣例(「123456789」の CRC-32 は CBF43926)ですが、シリアルプロトコルや PLC ツール、ログ形式によっては 10 進の値をそのまま要求します。大文字切替で資料の表記に合わせられ、各欄はワンクリックでコピーできます。
CRC は検出だけでなく訂正もできる?
特殊な構成を除いてできません(Reed–Solomon などの誤り訂正符号は類似の数学に基づきます)。通常の CRC はデータが壊れたことしか分からず、どこが・どう直すかは分かりません。訂正には FEC やパリティファイルなどの冗長化が必要です。
サーバーに送信されることはある?
ありません。テキストもファイルもブラウザ内の JavaScript だけで計算され、ネットワーク要求は一切ありません。プライベートなファイルのチェックサム計算にも安心して使えます。ただし CRC はセキュリティツールではない点には留意してください。
自分のプロジェクトではどの CRC を選ぶべき?
相手側がすでに使っているものを選びます。送受信で同じバリアントを計算してこそ CRC は意味を持ちます。新規設計なら CRC-32 か CRC-32C(検出力が高く近年の CPU はハード支援あり)、Modbus 機器には CRC-16/MODBUS、HDLC/PPP は規格指定の CCITT-FALSE または KERMIT が定番です。
CRC 計算機の使い方
この CRC 計算機は、テキストやファイルのチェックサムを 15 種類の一般的なアルゴリズムで計算します:CRC-8/SMBUS、CRC-8/1-WIRE、CRC-8/DVB-S2、CRC-16/IBM (ARC)、CRC-16/CCITT-FALSE、CRC-16/KERMIT、CRC-16/XMODEM、CRC-16/MODBUS、CRC-24 (OpenPGP)、CRC-32、CRC-32/MPEG-2、CRC-32/JAMCRC、CRC-32C、Adler-32、CRC-64/GO-ECMA。結果は 16 進と 10 進の両方で表示され、大文字切り替えとワンクリック コピーに対応。ファイルはバックグラウンドの Web Worker でプログレスバー付きで処理され、すべてブラウザー内でローカルに動作します。
- 「テキスト」タブで入力を入力または貼り付けます。チェックサムは入力に合わせてリアルタイム更新されます。
- 文字エンコーディングを選びます。モダンなテキストは UTF-8、受信側が文字ごとに 1 バイトを想定する場合は Latin-1(ISO-8859-1)。
- プロトコルやデータシートが指定するアルゴリズムを選びます。初期選択は CRC-32 です。同じデータでもアルゴリズムごとに値は異なります。
- HEX と 10 進のフィールドを読み、「大文字」スイッチでリファレンスの表記に合わせ、「コピー」で値を取得します。
- ファイルの場合は「ファイル」タブに切り替え、ドロップゾーンをクリックするかファイルをドラッグします。処理は worker 内で行われ、ライブのプログレスバーが付き、ファイルは端末から出ません。
サニティチェック:ASCII 文字列 "123456789" の CRC-32 は CBF43926(10 進で 3421780262)です。デバイスの結果と合わないときは、ほぼ間違いなく CRC の変種が違います。バイト列を疑う前に、正確な多項式・初期値・リフレクション設定を確認しましょう。
関連ツール
- ハッシュジェネレーター ブラウザでテキストからMD5、SHA-1、SHA-256、SHA-512ハッシュを即座に生成
- Base58 エンコード・デコード Bitcoin アルファベットでテキストを Base58 にエンコード、または Base58 をテキストにデコード。Base58Check(バージョンバイト 0x00/0x05)と二重 SHA-256 チェックサム検証に対応し、すべてブラウザ内で完結します。
- AES暗号化/復号 AES暗号化/復号ツール、CBC/CFB/CTR/OFB/ECBモード、Pkcs7/ZeroPadding/NoPadding、128/192/256ビット鍵、Base64出力、鍵/IV形式自動検出
- ファイルハッシュ MD5、SHA-1、SHA-256、SHA-512ファイルハッシュをローカル計算・検証
- Chmod 計算機 無料オンラインchmod計算機でチェックボックス付きLinuxファイル権限を視覚化・計算。数値(755, 644)とシンボリック表記(rwxr-xr-x)を即座に変換。setuid、setgid、sticky bit等の特殊権限に対応。
- ASCIIコード表 10進数、16進数、8進数、2進数コード、HTMLエンティティ、文字説明を含む完全なASCII文字エンコーディングリファレンス。即座に検索・フィルタリング。
- Hexビューアー 検索、オフセットナビゲーション、仮想スクロール付きのHexダンプ形式でファイル内容を表示
- MIMEタイプ検索 ファイル拡張子からMIMEタイプを即座に検索、またはMIMEタイプから拡張子を逆引き。1000以上のエントリを収録した無料オンラインリファレンス。