Aber auch Betreiber von Servern können einiges tun, um ihre Nutzer zu schützen. Im ersten Schritt sollte man natürlich versuchen, Angreifer erst gar nicht an die Datenbanken mit den Hashwerten zu lassen. Dass das einfacher gesagt als getan ist, beweisen die vielen Einbrüche auch auf Servern von großen Unternehmen. Deshalb muss man zwangsläufig den Hashwert sichern. Das beginnt damit, dass man keine veralteten Algorithmen verwendet.
Sowohl MD5 als auch SHA-1 gelten schon seit längerem als unsicher und entsprechende Regenbogentabellen sind einfach im Internet zu finden. Mit diesen lassen sich Passwörter, die so gehasht wurden, binnen Sekunden herausfinden. Deshalb ist es unerlässlich, dass man sich ständig informiert, ob es neue Algorithmen gibt bzw. wie sicher die verwendete Hashfunktion noch ist. SHA-2 und so auch dessen bekannteste Variante SHA-256 gelten immer noch als sicher, inzwischen ist aber auch SHA-3 verfügbar, was noch länger Sicherheit verspricht.
Um das Entschlüsseln durch Regenbogentabellen um einiges schwieriger zu gestalten, verwendet man heutzutage das sogenannte Salt: Wenn ein Nutzer ein Passwort festlegt, erstellt das System zusätzlich dazu einen zufälligen Wert, das Salt. Dieser Wert fließt zusammen mit dem Passwort in die Hashfunktion und erzeugt so einen anderen Wert, als das Passwort allein.
Salt und Hashwert liegen gemeinsam in der Datenbank. Dieser Umstand wirkt verwirrend: Angreifer, die den Inhalt der Datenbank erhalten, haben somit den Nutzernamen, den Hashwert und den dazugehörigen Salt. Tatsächlich werden Brute-Force- und Wörterbuch-Attacken so nicht vermieden, aber gerade gegen Rainbow Tables hilft die Zusatzmaßnahme. Eine solche Tabelle ist ja im Vorfeld erstellt, auf der Basis eines Hashalgorithmus und unabhängig von der Datenbank, die man benutzt. Die Salts können also nicht in Regenbogentabellen enthalten sein, da der Schöpfer der Tabelle den Salt noch nicht kannte.
Ein weiterer Vorteil von Salt ist, dass Nutzer sich diese nicht merken müssen. Daher können sie vollkommen chaotisch sein und vor allem auch sehr lang. Das macht die Hashwerte selbst wiederum so komplex, dass die Arbeit mit ihnen erschwert wird. Außerdem verhindert ein Salt, dass zwei oder mehr Personen das gleiche Passwort eingeben und so auch den gleichen Hashwert in die Datenbank schreiben. Schließlich hilft Salt auch bei dem Problem, dass Nutzer immer wieder das gleiche Passwort für verschiedene Dienste benutzen. Der gespeicherte Hashwert ist aufgrund des Salts bei allen Diensten anders.
Neben Salt gibt es auch noch Pepper: Dieser erschwert wiederum den Angriff mit Brute Force oder Wörterbüchern. Auch der Pepper ist eine zufällige Zeichenfolge, die – am besten in Kombination mit Salt – zusammen mit dem Passwort in den Hashwert einfließt. Im Gegensatz zum Salt speichert man den Pepper nicht zusammen mit den anderen Login-Daten in einer Datenbank, sondern getrennt und an einem möglichst sicheren Ort.
Häufig wird eine feste Zeichenkette für alle Passwörter der Plattform verwendet. Deshalb hilft Pepper nicht gegen die Tatsache, dass mehrere Nutzer das gleiche Passwort besitzen, denn sie verwenden auch den gleichen Pepper, was wiederum zu identischen Hashwerten führt. Dementsprechend sollten Administratoren eine Kombination aus Salt und Pepper wählen.