-
Notifications
You must be signed in to change notification settings - Fork 323
Open
Description
It is possible that hash_b will return 0, reducing the second term to 0. This will cause the hash table to try to insert the item into the same bucket over and over. We can mitigate this by adding 1 to the result of the second hash, making sure it's never 0.
index = hash_a(string) + i * (hash_b(string) + 1) % num_buckets
hash_b(string) + 1 will never be 0, but it may end up having the same effect if hash_b(string) is (num_buckets-1). Then no matter what i is, the final result will be the same as hash_a(string) % num_buckets, effectively resulting in the same DDOS explained before.
Metadata
Metadata
Assignees
Labels
No labels