Skip to content

CommonJS

djb2 算法

djb2 是一个产生随机分布的的哈希函数

参数 33 的选择

在 DJB2 哈希算法中,使用乘数 33 作为哈希算法的参数,是为了利用位运算的性质,避免乘法运算,从而提高计算速度和效率

使用乘数 33 的主要原理是:将一个数左移一位,相当于将这个数乘以 2,左移 n 位相当于将这个数乘以 2 的 n 次方。而使用位运算的速度远远快于乘法运算,因此在哈希算法中使用位运算可以显著提高计算速度和效率

同时,33 作为乘数的选择也是有一定道理的。首先,33 是一个奇数,这可以确保在哈希过程中使用的乘数不会与偶数相关的信息发生冲突。其次,33 可以写成 2 的五次方再加上 1,即 33=2^5+1。这意味着在哈希过程中,可以将原始哈希值左移 5 位,再加上原始哈希值,相当于将原始哈希值乘以 33,从而得到更好的哈希值

Released under the MIT License.