私は、JavaScriptで実装された衝突の少ない高速ハッシュを探しています。暗号ハッシュである必要はありません。私は基本的には、指定されたファイルがすでにアップロードされているか(または部分的にアップロードされている)ユーザーのアカウントにアップロードされているかどうかを確認する方法として、大規模な(ビデオ)ファイルにアップロード時間を保存しています。ファイルのJavaScriptの低衝突の非暗号ハッシュ
新しいHTML5 File APIを使用して、ファイルのスライスを読み込んでいます。私はSparkMD5にこれを渡して、私にファイルのハッシュを与えます。私はSparkMD5を使ってインクリメンタルハッシュを行うことができるので、メモリ内のすべてを読み取る必要はありません。
全体としてSparkMD5は私のニーズに対応していますが、大きなファイルの場合はハッシュを取得するまでに時間がかかります(300MBファイルの場合は約30秒)。私はこれを減らすのが理想的です。私はハッシュ関数に精通していないので、何かを移植するつもりはなく、すでに実装されているライブラリを理想的に探しています。
何許容期間をだろうか?あなたはMD32よりも高速であることが意図されているCRC32を見ることができますが、目立たないかもしれませんし、おそらくより高い衝突率を得るでしょう。 – Graham
さて、私はCRC32を見ましたが、衝突率は%0.4と読んでいます。私はこれが本当であるかどうかを知るのに十分な知識はありませんが、衝突率が高いことを示す他のものもあるようです。 –
あなたの質問に答えるために、私は理想的には1GBファイルでも数秒かかると思っています。それが現実的かどうかは分かりません。 –