CRC16によってエラーオフセットバイトを決定します
-
27-10-2019 - |
質問
CRC16計算から変更されたバイトまたはバイトを決定することは可能ですか?
たとえば、最後に2バイト値としてCRC16を含む780バイトの構成ファイルを取得したとします(したがって、CRC16は最初の778バイトに基づいて計算されます)。ファイルコンテンツのCRC16を計算すると(最後にCRC16を含めない778バイト)、それが異なる場合、エラーが発生したバイトオフセットを決定できますか?
解決
短い答えはノーです、できません。
CRCがどのように計算されているかを理解しなければならない理由と、それがハッシュ操作と呼ばれる数学的に理解しなければならない理由を理解するため。それが意味することは、生成されたハッシュコード(この場合はCRC)から出力を確実に再構築することはできません。
特定の特定の入力テストケースに基づいて元のテキストに関する情報を推測できる統計分析方法がありますが、大部分の場合は、CRCの元のテキストに直接戻ることはありません。したがって、元のテキストが特定の方法で構築されていない限り、ほとんどの場合、データが変更されたオフセットを知る方法はありません。
他のヒント
CRC16の2つの計算のみを使用してください。
CRC16は単なるチェックサムです。違いがあるが、どこにもそうではないことがわかります。
所属していません StackOverflow