Status: IN
`_hashes()` uses Kirschner-Mitzenmacher double hashing from a single MD5 digest, producing k positions as `(h1 + i*h2) % m` without k independent hash functions
Source: entries/2026/05/28/topic-bloom-filter-integration.md
def _hashes(self, item):
h1, h2 = hash(item), hash(item + "_salt")
return [(h1 + i * h2) % self._size for i in range(self._num_hashes)]