That is why you shouldn't use hash tables in code that might (even potentially) become a target for DoS attacks.
You can use a family of hash functions and seed the hash table instance with a key.
The attacker won't be able to do make assumptions regarding collisions because he doesn't have access to the initial key.
That is why you shouldn't use hash tables in code that might (even potentially) become a target for DoS attacks.