将整个哈希范围拆分为n个等范围

nox*_*ion 6 hash md5 sha1

我想要一个哈希范围(md5或sha1)并将其分成n个相等的范围.

例如,如果m(num节点)= 5,则整个散列范围将被分割为5,以便存在关键范围的均匀分布.我想n = 1(节点1)从哈希范围的开头到1/5,2从1/5到2/5等一直到结束.

基本上,我需要将键范围映射到每个n,这样当我散列一个值时,它知道哪个n将负责该范围.

我是哈希的新手,有点不确定我可以从哪里开始为项目解决这个问题.你能给予的任何帮助都会很棒.

Pas*_*uoq 1

如果你能忍受一点点很难消除偏差(任何 2 的幂都不可能被 5 整除,所以必须有一些偏差),那么模(%在 C 和许多其他具有类似 C 语法的语言中)就是将整个范围划分为 5 个几乎相同大小的分区的方法。

m任何带有 的消息md5(m)%5==0都在第一个分区中,等等。