Da quello che so c'è un metodo chiamato sale aggiunto agli hash per impedire agli attaccanti di usare gli hash precalcolati.
Finché l'attaccante può trovare un sale statico nell'hashing inverso e fare un attacco di collisione, quanto è sicuro l'algoritmo seguente:
hash1 = md5(password)
hash2 = md5(reverse(password))
md5(hash1 + hash2)