問題タブ [crc32]
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.
c# - .netのCRC32 hex
データを正の 8 文字の HEX で出力する CRC32 計算アルゴリズムを見つけようとしています (たとえば、winrar CRC など)。
見つかったすべてのアルゴリズムは、処理方法がわからない正/負の整数を返します...
c# - CRC32 C ++ / C#からPHPへ
私はCRC32、MD5などのアルゴリズムが苦手なので、質問するのも難しいです:)
基本的に使用するC#アプリケーションがあります
コードのさらに下では、Generate
このようなメソッドでそれを使用します
特定のcrcSeed
値を使用している間。
Generate
私の仕事は、正しいCRC計算を維持しながら、メソッド全体をPHP関数に作り直すことです。
PHPの
crcSeedを設定できないため、関数が機能しません。だから私の質問は:
Linuxマシンでコードを使用できるように、外部のdllなどに頼らずにPHPで正確なcrc32計算を行うにはどうすればよいですか?
編集:
CRCはチャンクで計算され、crcSeedが最初のものになります。
CRC32Calcメソッドは実際にはSCTPCRC-32Cバージョンを使用しているため、現在はPHPの実装のみが必要です。
c - 802.11 FCS(CRC32)
以下のコードは、ワイヤレス802.11フレームのFCS値を正しく計算していますか?
以下のコードで生成された値は、wiresharkで表示された値と一致しないためです。
上記の関数を次のように呼び出しています。
ここで、ヘッダーのタイプは次のとおりです。
ヘッダー情報は、pcapコールバックによって処理されます。
このリンクからcrc32()とcrctable[]のコードを取得しました
2年後の編集:
上記のコードはcrc32()
機能します。この行
printf("0x%x\n",crc32(sizeof(MSG)-16-4,MSG+16));
は、正しい802.11 CRCを出力します。ここで、
MSG
unsigned char[]
Wiresharkからコピーおよび貼り付けされたメッセージバイトの配列( )です。
16
ラジオタップヘッダーのサイズです。
4
はFCSのサイズです(フレームチェックシーケンス、crc32、リトルエンディアン= x86オーダー)。
linux - gunzip を使用して、1 つの文字列の crc32 コードを計算します
全て。
gunzip を使用して文字列の crc32 コードを計算したいと考えています。
文字列:テスト文字列
このコマンドはうまく機能します:
echo -n teststring | gzip -f > /tmp/filename && gunzip -lv /tmp/filename && rm -f /tmp/filename
しかし、このコマンドは機能しません:
echo -n teststring | gzip -f | gunzip -lv
すべての gunzip マニュアルを検索したところ、「圧縮ファイルがシーク不可能なメディア上にある場合、 --list オプションはサイズを -1 として報告し、crc を ffffffff として報告します。」を見つけました。標準出力がシーク不可能なメディアである理由を知りたい? このコマンドをうまく機能させるにはどうすればよいですか?
アップデート:
これは機能しません:
cat /tmp/filename | gunzip -lv
これはうまくいきます:
gunzip -lv < /tmp/filename
この 2 つのコマンドの違いを教えてください。ありがとうございました!
php - Pycrc と PHP コードを使用した CRC32 計算が期待される結果と一致しない
C/C++ マクロとして定義された CRC32 アルゴリズムを変換しようとしていました。
PHPコードに(すでに1回要求されています)、C++と同じ結果出力を取得できませんでした。入力は (128 バイトのバイナリ) 16 進文字列として表示されます。
CC9F786E57B408F83EE907D32D1D7FA6F180632E1CBE97AE717B2CD964EBB5E71E97B49619E8CD7A94DA0CDD06083D169618017FB8A1722F21FFD609EA655665F8881B05AFE0B282B186E0B8A4A5C26727778EC6639592776E392996430D47143F740E541E3755B1627ECD31C1B98A7C3D010AE273D6900263F6A49600000000
16 進数で期待される CRC32 は956E04C6です。逆の順序でも構いませんが、その正確な値を生成する必要があります。
アルゴリズムはチャンクでコードを計算し、他の唯一の MUST は開始crc32 = 7 、つまり関数CRC32_F_calcの初期 CRC 値であり、バッファーのバイト (16 進文字列として表示) は実際には長さが 128 です。
私が得ることができたものは近くさえなかったので、pycrcプログラムをチェックしましたが、動作させることもできませんでした。何が起こったかは次のとおりです。
コマンド ( crc-32cおよび xor-in のパラメーターを 0x7 に変更)
出力
何が欠けているのかわからない。それを実現する時間はほとんどない (数時間) ので、PHP アプリケーションから呼び出すことができれば、(正しいパラメーターを使用した) Python プログラムでも問題ありません。
これまでに取得したPHPコードは次のとおりです。
android - XAPK ファイルの検証は正しいデータ情報に表示されます
APK 拡張ファイル サンプルの実行中に、CRC バグ アルゴリズムを回避するために CRC32 のチェックをスキップしました。しかし、XAPK ファイルの検証では正しいダウンロード データ情報が 99% 表示されますが、それを回避し、ハードコーディングして完全な 100% を表示するにはどうすればよいでしょうか?
c# - データ変換の問題、charからunsignedcharへの変換の問題。ソフトウェアとファームウェアのCRC32相互作用の問題
私の現在の問題は、ソフトウェアでCRC32ハッシュを計算し、それをファームウェアでチェックしていることですが、ファームウェアでハッシュを計算すると、想定の2倍になります。
ソフトウェア(C#で記述):
使用されるファームウェア機能(Cで記述):
上記の機能が呼び出されるファームウェアコード(Cで記述):
CommandPTRは、ソフトウェアメソッドの「文字列入力」という名前の同じデータへの参照であることに注意してください。
ソフトウェアで使用している値の約2倍を取得できる理由を誰かが知っていますか?別名HardCRCは、本来の2倍です。これは、私のunsignedcharキャストと関係があると思います。
c# - CRC プログラミングのヘルプが必要、.NET クラスから C への CRC32 変換
コード (C で記述):
手始めに; 私はCRCがどのように機能するかを知っています。最初に除数が指定された多項式で計算され、次にこのFCS(フレームチェックシーケンス)がデータセットに追加され、エンドユーザーシステムに送信されます。転送が完了すると、FCS の計算に使用されたのと同じ多項式で FCS がチェックされ、その除数によるデータの剰余がゼロの場合、データが正しいことがわかります。
これら 2 つの関数の実装がわかりません。私が学んだことから、関数 chksum_crc32gentab() は、チェックサムが 32 ビット CRC 多項式で取ることができるすべての可能な 16 進数値を生成します。私が得られないことの1つは、poly = 0xEDB88320L; の方法です。は多項式と同等です。この関数の一番下のロジックもわかりません。たとえば、条件付きのif (crc & 1)は、crc のすべてのビットが 1 の場合は計算し、それ以外の場合は 1 ビット右にシフトすることを意味しますか?
chksum_crc32(unsigned char *block, unsigned int length); もわかりません。. この関数はバイト文字列を取り込んで、テーブルで計算された適切な crc 値に変換するだけですか?. forループ内で使用するロジックについて混乱していると思います。
誰かがこのコードを理解しているなら、説明は素晴らしいでしょう。これは、.net クラスからの crc32 変換で機能します。データが変換され、これらの関数で使用される方法の例は次のようになります: (C# ソース)
C コードが取得された元のサイトとプロジェクトは次のとおりです。http://www.codeproject.com/Articles/35134/How-to-calculate-CRC-in-C
どんな説明でも役に立ちます
vb.net - VB.NETでCRC32チェックサムを計算するこのコードにProgressBarを追加するにはどうすればよいですか?
読んでいただきありがとうございます-私は以下のクラスを使用して、指定されたファイルのCRC32チェックサムを計算しています。
私の質問は、ファイルの完了の進行状況(%)を別のフォームの進行状況バーに報告するにはどうすればよいかということです。New()サブで(i / count)* 100を試しましたが、運がないか、プログレスバーを設定していません。誰か助けてもらえますか?
前もって感謝します
スティーブ