文字列のハッシュ化は、文字列ごとに一意の数値として文字列を表現することです (衝突の可能性は無視できると仮定します)。これにより、重要なデータ (パスワードなど) を文字列ではなく数値としてデータベースに保存できます。これにより、攻撃者がパスワード データベースにアクセスした場合にパスワードを保護できます。攻撃者はパスワード自体を取得するのではなく、数値表現のみを取得し、ハッシュによって文字列を取得することはほとんど不可能であるためです (特にハッシュ アルゴリズムを知らなければ)。 ).
多項式ハッシュは、プログラミング競技の問題で最もよく使用されます。
文字列 S のハッシュ関数を決定する最良の方法の 1 つは次のとおりです。
h(S) = S[0] + S[1] * P + S[2] * P^2 + S[3] * P^3 + ... + S[N] * P^N