問題タブ [crc16]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
320 参照

delphi - Delphi - (ini) ファイルを変更しますが、crc16 のチェックサムを等しく保ちます

ini ファイルを変更する方法を探していますが、チェックサムは以前のままにしておきます。結果が収まるまで、いくつかのバイトを変更しようとすることができます。しかし、私はプログラム的な方法で行きたいと思っています。どんなアイデアでも大歓迎です。

背景: プログラムは ini の crc をチェックし、適合しない場合はメッセージ ボックスを表示し、ユーザーは [OK] をクリックする必要があります。プログラムはバッチから起動され、完了すると自動的に終了します。非常に多くの場合、ユーザーがいないため、プログラムは彼の仕事をすることができません。Autoit などはインストールできません。

その間、crc チェックは廃止されます。プログラムは 10 年以上前のものであり、開発者に連絡が取れず、ソースもありません。

0 投票する
1 に答える
93 参照

crc - CRC で保護されたデータのエラーを検出する方法は?

最後にCRCが追加されたデータにエラーがあるかどうかを確認するために理解している限り、同じCRCアルゴリズムを実行して、新しく計算されたCRCがゼロかどうかを確認する必要があります。

次の方法でオンラインCRC計算機を使用して、これを試してみました。

  1. 0xAABBDD の CRC を計算します (0x 部分なし) - CRC16 は 0x8992 を出力します
  2. 0xAABBDD8992 の CRC を計算します - CRC16 は 0x0000 ではなく 0xFB4A を出力します

私は何を間違っていますか?

0 投票する
1 に答える
1866 参照

crc - CRC-8 に x^8 +x^2 +x+1 のような生成多項式を使用するのはなぜですか?

この G(x) =x^8 +x^2 +x+1 のような生成多項式を CRC-8 に使用する理由。これが最適な場合、どのように証明できますか。または、この多項式 G(x) = x^5 + x^4 + x^2 + 1 を CRC-5-ITU に使用します。

0 投票する
1 に答える
8729 参照

c++ - CRC テーブルの計算の設定方法

そこには多くのCRC計算の例があります。ビットシフトによるシンプルな実装と、事前に計算されたテーブルによるより効率的な実装。しかし、計算に影響を与える多項式以外にも、CRC の多くのパラメーターがあります。これらのパラメータは、http: //zorc.breitbandkatze.de/crc.htmlで評価できます。

これらのパラメータは

  • CRCの初期値
  • 入力データの反映
  • 出力データの反映
  • CRC の最終 XOR 値

一部の「標準」CRC アルゴリズムでは、CRC-16 (CCITT) のように、これらのパラメーターが明確に定義されています。ただし、異なるパラメーターを使用する実装がいくつかあります。

私の実装は、CCITT 多項式 (x 16 + x 12 + x 5 + 1)を持つ CRC16 と互換性がある必要があります。ただし、データ バイトと最終的な CRC を反映する必要があります。これらの反映を計算方法に実装しました。しかし、それには時間がかかります。最高のパフォーマンスを得るには、計算から除外する必要があります。

CRC の反射パラメータは、初期化メソッドでどのように計算できますか?

編集:各パラメーターを個別に制御するにはどうすればよいですか? 関数が実際にどのようにInit機能し、すべてのパラメーターがどのように実装されているかを理解したいと思います。

0 投票する
1 に答える
1711 参照

reverse - ペイロードに CRC を追加する代わりに CRC 初期値を計算する

私が実装した CRC のほとんどは、計算された CRC 値をメッセージ (ペイロード) に追加し、すべてのバイトを含む受信機でゼロの結果をチェックしていました。CRC 値は、CRC レジスタを介して供給されました。明らかに、これは非常に標準的なアプローチです。

ここで、別のアプローチを使用したいと思います。

  1. ペイロードから値を計算します。
  2. ペイロードの最後のバイトがフィードされた後の結果がゼロになるように、メッセージ バイト (ペイロード) が CRC レジスタを介してフィードされる前に、その値を CRC レジスタの初期値として使用します。

これを行うための最良のアプローチは何ですか? より深く掘り下げるための良いアイデアや指針はありますか?

ps: なぜこれをやりたいのですか? 一部のアプリケーション (ROM) では、データが ROM のアドレス空間の最後に格納されるため、データを追加できません。したがって、CRC レジスタをプリロードするか、メッセージの前に値を追加したいと思います。

0 投票する
2 に答える
1253 参照

python - CRC16 多項式を取得するためのリバース エンジニアリング

ベース値とCRC16出力を使用してCRC16多項式を計算する効率的な方法を見つけようとしています。
より明確にする例:

y を評価するために CRC16 関数で使用される多項式を見つけるにはどうすればよいですか?
C と Python を使用して実行可能ファイルを作成しています (テスト目的で)。

0 投票する
0 に答える
261 参照

c# - ZMODEM CRC-32 FCS の問題

このトピックに関する多くの質問と回答が見つかりました。しかし、私はまだ ZModem にこだわっています。フレームの最後 (FCS) に CRC-32 が詰まっています。このチェックサムが計算される ZFile ヘッダー フレームの部分を知りたいですか? 計算には、フレーム タイプ、エンコーディング タイプ、ZCRCW バイトなどが含まれますか? または、ZF/ZCRCS、および情報のみ。フレーム全体の値に基づいてフレームのCRCを計算できるかどうかも知りたいですか? また、CRC-16 および/または CRC32 の CRC 計算例を説明付きで見つけることは可能ですか? 私は C# なので、Zmodem の仕様に迷うことがあります。よろしくお願いします