クラシックな3バイトの指紋関数はありますか?
-
25-10-2019 - |
質問
24ビットワードに収まる短い文字列(たとえば、16〜256バイトなど)のチェックサム/指紋関数が必要です。そのためによく知られているアルゴリズムはありますか?
解決
簡単なソリューションとして24ビットCRCを使用することを提案します。 CRCはあらゆる長さで利用でき、常に簡単に計算できます。ウィキペディアには一致するエントリがあります。品質は、モジュロ削減の合計よりもはるかに優れています。次のステップ(同じチェックサムで間違った文字列を持つことが本当の脅威である場合)は、CMACのような暗号化MACです。これは本からは長すぎますが、最初の24ビットを奪うことができます。
他のヒント
最も簡単なことは、基本的なチェックサムです。文字列のバイトを追加します(2^24)。
ただし、バイトに変換する際には、文字セットの問題に注意する必要があるため、誰もがバイトへの同じエンコードに同意します。
所属していません StackOverflow