問題タブ [universal-hashing]
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.
data-structures - ハッシュ関数のユニバーサルファミリーは敵の攻撃を防ぐためだけですか?
私の意図が、データをすべてのバケットに均等に分散する優れたハッシュ関数を持つことだけである場合、ハッシュ関数のファミリーを考え出す必要はありません。1 つの優れたハッシュ関数で実行できますが、それは正しいですか?
ハッシュ関数のファミリーを持つ目的は、敵が病理学的データセットを構築するのを難しくすることだけです.ハッシュ関数をランダムに選ぶとき、敵はどのハッシュ関数が使用されているかについての情報を持っていません. 私の理解は正しいですか?
編集: 誰かが不明として閉じようとしているので; この質問は、ユニバーサル ファミリのハッシュ関数を使用する本当の目的を知ることです。
javascript - JavaScript でファイルの違いを確認するにはどうすればよいですか?
JS と HTML 5 を使用して構築された Githubs デスクトップ フレームワークである Electron を使用しています。
これらのファイルと文字列は、同じサイズでも異なる場合があります。サイズは小さいもの (2 ~ 3 バイト) または大きいもの (2 ~ 3 メガバイト) です。
アプリの性質上、0.5 秒ごとにこれを確認する必要があります (ポーリング時間には余裕があります)。
このデータは、sqlite と同様にローカル データベースに保存されます。このデータベースの内容を完全に制御できます。私の最初の考えは、データベース内の各ファイル/文字列の MD5 ハッシュを、ファイル/文字列の MIME タイプとサイズと共に作成して保存することです。そうすれば、サイズの違いを確認し、サイズが同じ場合は MIME タイプにフォールバックし、サイズが同じ場合は md5 にフォールバックできます。
私の問題は、ポーリング頻度です。簡単に言うと、クリップボードの内容を取得してデータベースと照合するため、サイズ、MIME タイプ、および md5 ハッシュをポーリングごとに計算する必要があります。MIME タイプとサイズは問題ありませんが、8MB のイメージの md5ing は遅くなる可能性があります。
私が知っておくべき別の方法はありますか?
ありがとう
algorithm - 明示的なユニバーサル ハッシュ関数ファミリを記述する
この問題では、次のマッピングが与えられました
これから、派生する必要がある明示的なユニバーサル ハッシュ関数があり、これは 4 つの関数のセットで実行できるというヒントがあります。残念ながら、これを行う方法に関する記事を検索しても、まだ混乱しています. このハッシュ関数を見つけて正しい方向に進む方法を理解するための助けをいただければ幸いです!
編集:
熟考の末、これが私が思いついたものです。これは正しいでしょうか?