問題タブ [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.

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

c# - .netのCRC32 hex

データを正の 8 文字の HEX で出力する CRC32 計算アルゴリズムを見つけようとしています (たとえば、winrar CRC など)。

見つかったすべてのアルゴリズムは、処理方法がわからない正/負の整数を返します...

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

javascript - CRC32 は毎回新しい整数を返します

関数を実行するたびにpassword、新しい値を取得します。なんで?

期待される出力:

実際の出力:

Jsbinはこちら: http://jsbin.com/udoyaj/4/edit

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

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の実装のみが必要です。

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

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を出力します。ここで、

MSGunsigned char[]Wiresharkからコピーおよび貼り付けされたメッセージバイトの配列( )です。

16ラジオタップヘッダーのサイズです。

4はFCSのサイズです(フレームチェックシーケンス、crc32、リトルエンディアン= x86オーダー)。

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

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 つのコマンドの違いを教えてください。ありがとうございました!

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

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コードは次のとおりです。

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

android - XAPK ファイルの検証は正しいデータ情報に表示されます

APK 拡張ファイル サンプルの実行中に、CRC バグ アルゴリズムを回避するために CRC32 のチェックをスキップしました。しかし、XAPK ファイルの検証では正しいダウンロード データ情報が 99% 表示されますが、それを回避し、ハードコーディングして完全な 100% を表示するにはどうすればよいでしょうか?

ここに画像の説明を入力

ここに画像の説明を入力

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

c# - データ変換の問題、charからunsignedcharへの変換の問題。ソフトウェアとファームウェアのCRC32相互作用の問題

私の現在の問題は、ソフトウェアでCRC32ハッシュを計算し、それをファームウェアでチェックしていることですが、ファームウェアでハッシュを計算すると、想定の2倍になります。

ソフトウェア(C#で記述):

使用されるファームウェア機能(Cで記述):

上記の機能が呼び出されるファームウェアコード(Cで記述):

CommandPTRは、ソフトウェアメソッドの「文字列入力」という名前の同じデータへの参照であることに注意してください。

ソフトウェアで使用している値の約2倍を取得できる理由を誰かが知っていますか?別名HardCRCは、本来の2倍です。これは、私のunsignedcharキャストと関係があると思います。

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

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

どんな説明でも役に立ちます

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

vb.net - VB.NETでCRC32チェックサムを計算するこのコードにProgressBarを追加するにはどうすればよいですか?

読んでいただきありがとうございます-私は以下のクラスを使用して、指定されたファイルのCRC32チェックサムを計算しています。

私の質問は、ファイルの完了の進行状況(%)を別のフォームの進行状況バーに報告するにはどうすればよいかということです。New()サブで(i / count)* 100を試しましたが、運がないか、プログレスバーを設定していません。誰か助けてもらえますか?

前もって感謝します

スティーブ