問題タブ [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 - MicroController (Atmel) 上の CRC-32
現在、ATMEGA1280 で着信データストリーム (シリアル通信) 用に CRC-32 を実装しようとしていますが、C の組み込み側でこれを行う方法が少しわかりません....誰かが私を適切な方向に向けることができればおよび/またはとにかく助けていただければ幸いです...
.net - BCL GZipStream (StreamReader を使用) が CRC32 でデータ エラーを確実に検出しないのはなぜですか?
先日、GZipStream は破損したデータを検出しない (CRC32 パスでも)という質問に出くわしました。(これは「重複」である可能性が非常に高いですが、私はこの件について複雑な気持ちを持っています。タイトルにCRC32を追加したのも私でしたが、振り返ってみると、投稿の残りの部分では場違いに感じます)。自分で問題を少し調べてみたところ、この問題は最初に説明した他の質問よりもはるかに大きいと思います。
私は他の質問を拡張し、テスト コードを LINQPad で実行できるようにし、CRC32 (Cyclic Redundancy Check)の問題が実際に存在する場合は、それをより適切に紹介しようとしました。(コードはオリジナルに基づいたわずかな変更にすぎないため、テストのセットアップ/方法論に欠陥があるか、別の奇妙な癖/PEBCAK の両方が存在する可能性があります。)
破損したデータが常に(何らかの!) 例外を発生させるとは限らないため、結果は奇妙です。CRC32 チェックが実際に「機能している」ように見える場合があることに注意してください。index-out-of-range/bad header/bad footer の原因となる破損バイトは無視できます。これは、これらがCRC32 チェックの前に解凍を強制終了していると想定できるためです ( IndexOutOfRangeException がラップされる可能性が高い場合でも、これは完全に理解できます)。 InvalidDataException による) そのため、
CRC32 チェックの信頼性が本来よりも大幅に低いのはなぜですか? (下に「無効なデータ(例外なし)」とあるのはなぜですか?)
GZip フッターには CRC32 と 圧縮されていないデータの長さの両方が含まれているため、エラー検出率は「大幅に高く」なるはずです。 . (もちろん、破損したストリームをできるだけ早く検出するのは良いことですが、場合によっては、最終的なセーフガード チェックサムが完全に無視されるようです。)
形式はCorruptByteIndex+FailedDetections: Message
次のとおりです。
LINQPad で実行可能なコピー アンド ペーストのテストを次に示します (.NET 3.5 および 4 の場合は、「C# ステートメントとして」モードを使用します)。
.NET 3.5の圧縮データを次に示します(GZipStream は小さなペイロードの "圧縮" が苦手なことで有名ですが、ストリームは技術的にまだ有効であるため、"修正されません" という問題です)。
(笑)
その他の注意事項:
この場合、テストに微妙な欠陥がある可能性があります。GZipStream が「破損の検出に失敗した」(例外なし) 場合、StreamReader から読み取られたデータは「」(空の文字列) です。その場合、例外 (IOException など)を発生させReadToEnd()
ないのはなぜですか?
したがって、GZipStreamではなく、ここで「風変わりな」StreamReaderですか、それともGZipStreamの問題ですか(例外をスローしないため)? このユースケースを確実に処理する正しい方法はありますか? (現在の位置からの入力ストリームが実際に空である場合を考慮してください。)
c - 大きなCRC32を計算する正しい方法は何ですか
これは、最新のx86-64プロセッサに組み込まれているCRC32命令を使用して、最大1024バイトのCRC32を計算する方法を説明する記事です。ただし、1024バイトを超えるCRC32を計算する必要があります。1024バイトの各ブロックのCRC32を計算し、最終的にそれらを合計するのは正しいアプローチでしょうか、それとも正しくありませんか?もしそうなら、それを行う正しい方法は何ですか?
crc - 逆メッセージ CRC 計算
このメッセージ(ab,cd,ef)
があり、ROHC (堅牢なヘッダー圧縮) CRC8 多項式があるとしe0
ます。
最後のバイトから逆方向にメッセージの CRC を計算し、元のメッセージで計算している場合と同じ結果を得る方法はありますか?
file - CRC32 はファイルの整合性チェックに本当に悪いのでしょうか?
もちろん、MD5 は CRC32 よりも優れており、SHA1 は MD5 よりも優れています。また、CRC32 よりもはるかに低速です。
転送されたファイルの一貫性をチェックする方法を考えており、CRC32 が最速のオプションです。
整合性チェックで CRC32 がどれほど悪いかはどこにもわかりませんでした(つまり、CRC32 が不正な形式のファイルを検出しないのはなぜでしょうか)。
windows-installer - MSIファイルはWindowsでのCRCチェックをサポートしていますか?
MSIファイルがビルドされてから変更されたかどうかを確認できるかどうか知りたいのですが。
c# - ファイルのcrc32をチェックする
これは実際には「ハウツー」の質問ではありません。
アプリケーションがファイルのチェックサムをフォルダーに保存するために使用する「標準」ファイル構造はありますか?crc32、md5、sha1、sha256などのさまざまなものをチェックするツールを開発しています...チェックしているフォルダー内のファイルにさまざまなハッシュをプログラムに保存させたいです。
「md5sums」または「sha1sums」と呼ばれる一般的に使用されるファイルがあることを私は知っています。しかし、CRCはどうですか?私は周りに気づいていません。そして、もしあれば、その構造は何ですか?
ありがとう。
hash - CRC32 はハッシュ関数として使用できますか?
CRC32 はハッシュ関数として使用できますか? このアプローチの欠点はありますか? トレードオフはありますか?
objective-c - ALAsset の CRC チェックサムの計算
ALAsset の CRC チェックサムを計算しようとしています。私の目標は、すべての CRC を保存し、後でそれらを比較してアセットが変更されたかどうかを確認することですが、同じアセットの CRC を生成するたびに異なる結果が得られます。
CRC を生成するには:
使用方法:
同じアセットに対してさまざまな場合に CRC を生成したときの結果は次のとおりです。
id: 17575
url: assets-library://asset/asset.JPG?id=BB282CBD-F5B1-4771-B48B-E021224C7384&ext=JPG
ファイルサイズ: 1394332
crc: 3605102491
作成時間: 2456085.397025
id: 17826
url: assets-library://asset/asset.JPG?id=BB282CBD-F5B1-4771-B48B-E021224C7384&ext=JPG
ファイルサイズ: 1394332
crc: 1383370697
作成時間: 2456085.397025
ご覧のとおり、ファイルサイズと URL は同じですが、CRC が異なります。
CRC の計算が間違っていますか? それとも、ALAsset の別の部分を使用して CRC を生成する必要がありますか? ALAsset が取得されるたびに一部のデータが異なる可能性がありますか?
前もって感謝します!