对字符串进行哈希处理是将字符串表示为某个数字,每个字符串都是唯一的(我们假设冲突的可能性可以忽略不计)。这允许您在数据库中存储任何重要数据(如密码)而不是字符串,而是数字。如果攻击者获得了密码数据库的访问权限,这允许您保护密码,因为他不会获得密码本身,而只能获得密码的数字表示,并且几乎不可能通过其散列获得字符串(尤其是在不知道散列算法的情况下) ).
多项式哈希最常用于编程竞赛问题。
确定字符串S的哈希函数的最佳方法之一如下:
h(S) = S[0] + S[1] * P + S[2] * P^2 + S[3] * P^3 + ... + S[N] * P^N