依然成立：不同的字符串在大多数情况下拥有不同的散列值。此算法会在文本串的每一个位置计算从该位置开始的、与模式串等长的子串的散列值；如果该值与模式串的散列值相等，则算法会在该位置进行模式串的遍历比较。为使此算法正常并且良好地工作，散列函数应从不易产生伪阳性错误的函数中随机挑选以防止非匹配位置的字符串散列值与模式串相同，从而增加并没有对匹配产生贡献的冗余运算量。另外，所采用的散列函数应当为旋转哈希（特点为新位置的散列值可以通过已有散列值快速计算）以防止重新计算的额外工作。
算法实现.