問題タブ [adler32]

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 投票する
5 に答える
630 参照

algorithm - メッセージコード検証のアルゴリズム

あなたが前にこのスレッドを読んだなら-私が書いたすべてを忘れてください、私がそれを書いたとき私は酔っていたに違いありません。最初からやり直します:

私は現在、ユーザー入力を検証するためにある種のアルゴリズムを使用するプロジェクトに取り組んでいます。考慮すべき3つのパーティがあります。

クライアント-私たちのウェブページを閲覧する

会社-私たちは、クライアントの要求を処理します

サードパーティ企業-クライアントメッセージの処理

私たちのウェブページでは、クライアントに製品に関するいくつかの情報を表示します。製品に関する詳細情報が必要な場合は、サードパーティの会社に連絡して製品コードを記載する必要があります(それ自体は一意ではありませんが、一般的でもありません)。その見返りとして、クライアントはサードパーティ企業から他のコードを受け取ります。このコードは、承認のためにコードを検証するWebページに入力する必要があります。

私たち会社がサードパーティ会社とのやり取りがなかった場合が最善です。純粋な暗号化は、長すぎる文字列を生成するため、画像から外れています。これはSMSで行っているため、コードは短くする必要があります。

私がこれまでに思いついたもの:

すべての製品について、ベース16(0-f)でいくらか一意のコードを生成します(一意であるかどうかは関係ありません)。製品に関する詳細情報が必要なクライアントは、製品コードを記載したSMSをサードパーティ企業に送信します。代わりに、クライアントは同じコードを受け取りますが、数字は乗算され(2倍になる可能性があります)、36進数に変換されます。さらに、コードに最後の文字である制御番号が追加され、コードがLuhnで有効になります。 36進数のアルゴリズム。ユーザーが受信したコードを入力すると、会社はサーバー側で製品コードに対して検証します(Luhnに対して検証し、2で除算して、16進数に戻します)。

これはかなり安全で適切に聞こえますか?2人が通信する必要がない場合に、3人がメッセージを送信する有効な方法ですか?

編集して申し訳ありませんが、最初の投稿を書いたとき、私の心は他の場所にあったに違いありません。

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

c++ - ファイル名が与えられた場合、Crypto++ を使用して Adler32 を取得するにはどうすればよいですか?

「文字列ファイル名」が与えられた場合、C++ Crypto++ ライブラリを使用して Adler32 チェックサムを取得するにはどうすればよいですか。Source and Sink システムの使用について少し混乱しています。

以下に、MD5 を実行するコードのスケルトンを示しますが、Adler32 の使用法に関する例やチュートリアルが見つからないようです。


ここの良いサンプルとサンプル コードhttp://www.cryptopp.com/wiki/Category:Crypto++のサンプル (必要な Adler32 のものを除く)

0 投票する
6 に答える
5331 参照

algorithm - Adler-32 チェックサムアルゴリズムで 65521 を法とするのはなぜですか?

Adler-32 チェックサム アルゴリズムは 65521 を法として合計します。65521 が 16 ビットに収まる最大の素数であることは知っていますが、このアルゴリズムで素数を使用することがなぜ重要なのですか?

(誰かが私に教えてくれれば答えは明らかだと確信していますが、私の脳の数論の部分は機能していません。チェックサム アルゴリズムの専門知識がなくても、http://en.wikipedia. org/wiki/Fletcher%27s_checksumでおそらく説明できます。)

0 投票する
3 に答える
4941 参照

php - Php: zip の Adler32 チェックサムを計算するには?

サーバー側でポール・ダンカンの php ZipStream ( http://pablotron.org/software/zipstream-php/ ) を組み合わせて使用​​し、オンザフライで zip を作成し、Fzip ( http://codeazur .com.br/lab/fzip/ ) Flex/Air クライアント側。

Air では正常に動作しますが、ブラウザーで Flex を実行する場合、FZip を読み取るには、zip のヘッダーに Adler32 チェックサムを含める必要があります。

PHPでzipのAdler32チェックサムを計算するにはどうすればよいですか?

圧縮に gzdeflate を使用する ZipStream コア関数を以下に示します。

よろしく / ジョナス

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

hash - ハッシュ関数の組み合わせ - 衝突のリスクが大幅に減少するか?

ハッシュ関数を組み合わせることで衝突確率を下げることに関して本当の利点があるかどうかは誰にもわかりませんか? 特に 32 ビット ハッシュ、つまり Adler32 と CRC32 の組み合わせに関してこれを知る必要があります。 基本的に、adler32(crc32(data)) は crc32(data) よりも小さい衝突確率をもたらしますか? 最後のコメントはこちら結合を支持するいくつかのテスト結果を示しますが、ソースは言及されていません。私の目的では、衝突は重要ではありません (つまり、タスクにセキュリティは関係しません) が、可能であれば、衝突の可能性を最小限に抑えたいと考えています。PS: 私はハッシュの素晴らしい世界を始めたばかりで、それについて多くのことを読んでいます。ばかげた質問をした場合は申し訳ありませんが、適切な「ハッシュ方言」をまだ取得していません。おそらく、これに関する Google 検索の形式も不十分でした。ありがとう。

0 投票する
5 に答える
1561 参照

php - 累積ハッシュ

SO ( EDIT: Incremental Checksums ) で、次のプロパティをサポートするいくつかのチェックサムアルゴリズム (そのうちの 1 つが adler32 だと思います) があることを以前に読んだことがあります。

結果は、私がアーカイブしたいものを示すための単なる例であることに注意してください. adler および fletcher モジュールを使用して、PHP のハッシュ拡張でいくつかの例を試しましたが、値が加算されないようです。誰かが実装例を見せてもらえますか?

0 投票する
5 に答える
20377 参照

md5 - adler32 チェックサムの信頼性はどのくらいですか?

たとえば、md5 チェックサムと比較して、adler32 チェックサムはどの程度信頼できるのだろうか? ウィキペディアでは、adler32 は md5 よりも「信頼性がはるかに低い」と言われていましたが、どの程度、どのように?

より具体的には、サイズが 20GB 以上の (tar) ファイルを長時間アーカイブする場合の整合性チェックとして十分信頼できるかどうか疑問に思っています。

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

checksum - Zlib adler32 ローリング チェックサムの問題を解決するには?

zlib の adler32 関数を使用して、メモリ x (長さ 4096) のチャンクの弱いチェックサムを計算しています。すべて問題ありませんが、別のファイルのチャンクが一致しない場合は、ローリング チェックサムを実行したいと思います。ただし、zlib で adler32 によって返された値に対してそれを実行する関数を作成する方法がわかりません。チェックサムが一致しない場合、元のチェックサム x + 1 バイトと x + 4096 + 1 を使用してローリング チェックサムを計算するにはどうすればよいでしょうか。基本的にrsyncの実装を構築しようとしています。

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

crypto++ - Crypto++ は Adler32 ダイジェスト (バイト配列) を uint32_t に変換します

次の問題があります: を使用してデータ ブロックの adler32 チェックサムを計算しようとしていますCrypto++が、byte[4] 配列出力を uint32_t に変換した後、間違ったチェックサムが得られます。

crc32 を使用したこの関数は問題なく動作します。

しかし、adler32 を計算する関数は無効な値を返します。

誰かが私にヒントをくれることを願っています。

グリーツ・ファビアン

0 投票する
5 に答える
5088 参照

python - adler32ローリングチェックサムの計算の違い-python

実行中のチェックサムの計算を検討する際には、説明が必要です。

このようなデータがあると仮定します。

ブロックサイズを5とすると、実行中のチェックサムを計算する必要があります。

Pythonのドキュメントによると(Pythonバージョン2.7.2)

「データのAdler-32チェックサムを計算します。(Adler-32チェックサムはCRC32とほぼ同じくらい信頼性がありますが、はるかに高速に計算できます。)値が存在する場合は、チェックサムの開始値として使用されます。それ以外の場合は、固定のデフォルト値が使用されます。これにより、複数の入力の連結に対して実行中のチェックサムを計算できます。」

しかし、私がこのようなものを提供するとき、

出力は完全に異なります。

rsyncアルゴリズムで定義されているローリングチェックサムを生成するカスタム関数を作成してみました。

これらの関数を実行して得られる値は次のとおりです

ご覧のとおり、ローリングチェックサムとPythonの実装には、価値の点で大きな違いがあります。

ローリングチェックサムの計算でどこが間違っているのですか?Pythonのadler32関数のローリングプロパティを正しく利用していますか?