LawrencePeng's Blog

专注收集代码小精灵

Pearson's hash

今天懒癌烦了,灌篇水文吧。

  • 目的

    • 为8bit寄存器设计的哈希函数。
  • 效果

    • 非常简单
    • 在资料受限的机器上也能快速执行
    • 想要故意构造哈希冲突不是很容易
    • 两个只有一个字符不一样的字符串不会冲突
  • 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from random import shuffle
    example_table = range(0, 256)
    shuffle(example_table)
    def hash8(message, table):
    hash = len(message) % 255
    for i in message:
    hash = table[(hash+ord(i)) % 255]
    return hash