問題タブ [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.
.net - 文字列のCRC32を計算するにはどうすればよいですか
.NETで文字列のCRC32(巡回冗長検査)を計算するにはどうすればよいですか?
c++ - CRC32 C または C++ 実装
私は C または C++ での CRC32 の実装を探しています。これは、明示的に無償またはパブリック ドメインとしてライセンスされています。ここでの実装は良さそうに見えますが、ライセンスについて書かれているのは「ソース コード」だけで、十分ではありません。私は非 LGPL を好むので、DLL をいじる必要はありません (私のアプリはクローズド ソースです)。zlib で adler32 の実装を見ましたが、adler が適していないデータの小さなチャンクをチェックしています。
c# - この C# での CRC32 の実装が非常に遅いのはなぜですか?
次の関数を使用して、VS2008、.NET 3.5 プロジェクトのファイルの CRC32 を計算しています。
簡潔にするために、ルックアップ テーブル (_crc32Table) を作成する関数は省略しています。テーブルは UInt32 の配列であり、クラスがインスタンス化されるときに構築され、256 個の値を含みます (256 は _LOOKUP_TABLE_MAX_INDEX + 1 の値でもあります)。
これを MD5CryptoServiceProvider および SHA1CryptoServiceProvider ComputeHash 関数と比較していくつかのベンチマークを実行しましたが、はるかに高速です。MD5 関数は 2 倍以上高速で、SHA1 ハッシュは約 35% 高速です。CRC32 は速いと言われましたが、それは私が見ているものではありません。
私の仮定は間違っていますか?これは予想されることですか、それともこのアルゴリズムに欠陥がありますか?
crc - 実行中の CRC とは何ですか?
検索しましたが、それが何であるか、どのように計算されるかについての情報を見つけることができません。
質問が反対票を投じられた理由がわかりません。それは明確ではなく、プログラミング関連ですか?または、私は尋ねるべきでした:
ここで正確に何が起こりますか?
hash - ハッシュ関数の組み合わせ - 衝突のリスクが大幅に減少するか?
ハッシュ関数を組み合わせることで衝突確率を下げることに関して本当の利点があるかどうかは誰にもわかりませんか? 特に 32 ビット ハッシュ、つまり Adler32 と CRC32 の組み合わせに関してこれを知る必要があります。 基本的に、adler32(crc32(data)) は crc32(data) よりも小さい衝突確率をもたらしますか? 最後のコメントはこちら結合を支持するいくつかのテスト結果を示しますが、ソースは言及されていません。私の目的では、衝突は重要ではありません (つまり、タスクにセキュリティは関係しません) が、可能であれば、衝突の可能性を最小限に抑えたいと考えています。PS: 私はハッシュの素晴らしい世界を始めたばかりで、それについて多くのことを読んでいます。ばかげた質問をした場合は申し訳ありませんが、適切な「ハッシュ方言」をまだ取得していません。おそらく、これに関する Google 検索の形式も不十分でした。ありがとう。
c# - Web の短縮 URL を作成する CRC32
Webページの一意のURLを生成するためにcrc32を理解しようとしています。
crc32 を使用する場合、重複を避けるために使用できる URL の最大数はいくつですか?
チェックサムを 2^32 に維持するためのおおよその文字列の長さは?
URL の UUID を試し、uuid バイトを base 64 に変換すると、22 文字の長さに減らすことができました。もっと減らせるかな。
ほとんどの場合、URL (最大 1024 文字) を短縮 ID に変換したいと考えています。
hash - 文字列/ファイルが変更されたかどうかを知る効率的な方法 - crc32? md5? 他の何か?
文字列 (またはファイル) が最後に確認してから変更されたかどうかを効率的に確認する方法を探しています。
したがって、この関数を 1,000,000 個のファイル/文字列 (各ファイル/文字列は 1000 バイト未満) に対して実行し、各ファイル/文字列の出力を保存します。
その後、数日待ってから、もう一度実行します。各ファイルが変更されたかどうかを調べる必要があります...
各ファイルの CRC32 を計算する必要がありますか? MD5? 他にもっと効率的なものはありますか?
CRC32 は、ファイル/文字列が変更されたかどうかを通知するのに十分ですか?
編集ファイルと文字列の両方で機能する必要があるため、ファイルのタイムスタンプは問題外です。
algorithm - CRC32 の反転
CRC32 チェックサムを逆にする方法を探しています。周りには解決策がありますが、それらはひどく書かれているか、非常に技術的であり、および/またはAssembly にあります。アセンブリは(現在)私の範囲を超えているので、誰かがより高いレベルの言語で実装をまとめてくれることを願っています。Ruby が理想ですが、PHP、Python、C、Java などを解析できます。
テイカーはいますか?
python - Python で大きなファイルのチェックサムを作成する最速の方法
ネットワーク経由で大きなファイルを転送する必要があり、それらのチェックサムを 1 時間ごとに作成する必要があります。そのため、チェックサムを生成する速度は私にとって重要です。
どういうわけか、Windows XP Pro 64 ビット マシンで zlib.crc32 と zlib.adler32 を 4GB を超えるファイルで動作させることができません。ここで 32 ビットの制限に達したのではないでしょうか? hashlib.md5 を使用して結果を得ることができましたが、問題は速度です。4.8GB ファイルの md5 を生成するには、約 5 分かかります。タスク マネージャーは、プロセスが 1 つのコアのみを使用していることを示しています。
私の質問は次のとおりです。
- 大きなファイルでcrcを機能させる方法はありますか? md5よりcrcの方が好き
- そうでない場合、md5.hexdigest()/md5.digest を高速化する方法はありますか? またはこの場合、hashlib hexdigest/digest はありますか? 多分それをマルチスレッドプロセスに分割しますか?それ、どうやったら出来るの?
PS: 私は「資産管理」システムのようなものに取り組んでいます。svn のようなものですが、資産は大きな圧縮された画像ファイルで構成されています。ファイルには、わずかな増分変更があります。変更の検出とエラーの検出には、ハッシュ/チェックサムが必要です。