Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
CRC16校验工具,用于计算文本、Hex、Base64数据的16位循环冗余校验码,验证数据完整性。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
入力したテキストから、CRC-16/XMODEMの16ビット値を計算します。入力文字列はUTF-8のバイト列として扱い、結果は4桁の大文字16進数で表示します。たとえばASCII文字列 123456789 のチェック値は 31C3 です。画面の入力例は Hello World なので、例を読み込んで値の変化を確かめることもできます。
CRCは、送信前後や保存前後のデータから計算した値を照合し、偶発的な変化に気づくためのチェックサムです。CRC-16/XMODEMは名前のとおり結果幅が16ビットの方式で、パラメーターは幅16、生成多項式 0x1021、初期値 0x0000、入力・出力の反射なし、最終XOR 0x0000 です。CRC RevEngのアルゴリズム一覧に記載されたモデルと検査値を確認しています。
CRC16は16ビット幅を示す呼び方で、計算方式をひとつに決める名前ではありません。多項式、初期値、ビットの処理方向、反射設定、最終XORが異なれば、同じ入力でも結果が変わります。仕様書にCRC16とだけ書かれている場合は、相手側の実装やプロトコル資料で方式を確認してください。
特にCRC-16/MODBUSとは別の方式です。このページの 0x31C3 はCRC-16/XMODEMでASCIIの 123456789 を計算した値であり、別のCRC16方式や異なるバイト列にそのまま適用できる値ではありません。
照合したいテキストを入力欄に入れます。確認用には 123456789 を使えます。画面の例ボタンでは Hello World を入力できます。
文字の順番、大文字・小文字、空白、改行も計算対象です。送信側の値と比べるときは、先頭や末尾の空白、末尾改行の有無まで同じにしてください。
表示された結果をコピーし、同じCRC-16/XMODEMのパラメーターと同一テキストから得た値と照合します。 123456789 を入力して 31C3 になれば、この方式の代表的な検査例と一致します。
活用例
仕事や日常の流れの中での活用方法を紹介します。
CRC-16/XMODEMを実装中の開発者は、ASCIIの 123456789 を入力し、既知の検査値 31C3 と照合して方式の取り違えに気づけます。
同じ設定値や短いメッセージを別の環境で計算したとき、両方の文字列と4桁の結果を比べられます。値が異なる場合は、まず文字列の空白・改行とCRC方式を確認します。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
一致するとは限りません。このページはCRC-16/XMODEMに固定されています。比較先がMODBUSなど別の方式なら、同じテキストでも結果は異なります。
入力テキストをUTF-8バイト列にして計算します。照合相手も同じ文字列をUTF-8にしたバイト列で計算していることを確認してください。相手が別の文字コードや独自の正規化を使う場合は値が変わることがあります。
入力欄の文字列をテキストとして処理するため、16進文字列を元のバイト列へ変換したり、ファイルを読み込んだりはしません。たとえば 313233 は3バイトの 31 32 33 ではなく、入力した6文字のテキストとして扱われます。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
CRCは偶発的なデータ変化を見つけるための照合値で、暗号学的ハッシュや認証コードではありません。結果が一致しても、データの同一性や送信者の真正性、悪意ある改変がないことを証明するものではありません。NIST CSRCの用語集もCRCを暗号学的ハッシュとは異なるチェックサム方式として説明しています。
実際の通信や機器の値と照合するときは、CRC方式に加えて、どの範囲を計算するか、テキストをどの文字コードでバイト化するか、チェック値をどの順序で送るかを対象仕様で確認してください。このページはテキストから値を計算するもので、任意のバイナリデータ、ファイル、16進入力の解析やプロトコル用データの組み立てには対応しません。
関連
関連ツール、特集、利用可能なAPIを探せます。