一貫性を保つために、データの文字列のチェックサムを生成する必要があることに気づきました。大まかな考え方は、クライアントが受信したペイロードに基づいてチェックサムを再生成し、転送中に発生した破損を検出できるというものです。この種のことの背後にはあらゆる種類の数学的原理があり、自分でロールしようとすると、微妙なエラーがアルゴリズム全体を無効にするのは非常に簡単であることを漠然と認識しています.
そこで、次の基準を持つハッシュ/チェックサム アルゴリズムに関するアドバイスを探しています。
- Javascript によって生成されるため、比較的軽い計算である必要があります。
- 検証は Java によって行われます (ただし、これが実際に問題になることはわかりません)。
- 適度な長さのテキスト入力 (URL エンコードされた Unicode、ASCII だと思います) が必要です。通常は約 200 ~ 300 文字で、すべての場合で 2000 文字未満です。
- 出力も ASCII テキストである必要があり、短いほど良い結果が得られます。
私は主に、衝突の可能性を最小限に抑えることよりも、軽量なものに関心があります。8 文字のハッシュがこれに適していると想像するのは単純すぎますか? また、検証段階で破損が検出されなかったとしても、世界の終わりではないことを明確にする必要があります (これが 100% 信頼できるわけではないことは認識しています)。すり抜ける不正なエントリ。
編集 - 貢献してくれたすべての人に感謝します。私は Adler32 オプションを使用しましたが、それが Java でネイティブにサポートされていて、Javascript での実装が非常に簡単で、両端での計算が速く、8 バイトの出力があることを考えると、私の要件にぴったりでした。
(ネットワーク トランスポートが破損エラーの原因である可能性は低いことを認識しており、この問題についてはまだ腕を組んでいないことに注意してください。ただし、チェックサム検証を追加すると、障害点が 1 つ取り除かれ、他の領域に集中できるようになります。これが再発する場合。)