Salt
Ein Salted Hash (Gesalzener Hash) bezieht sich auf ein hash dem einen zusätzlichen Text angehängt wurde. Dieser angehängte Text nennt sich Salt. Diese Methode ist effektiv um lookups in einer Rainbowtable zu präventieren.
Inhaltsverzeichnis
Anwendung
In der Praxis werden meist sensible Daten wie Passwörter gehasht und zusammen mit dem Salt abgespeichert. Ein einfache Implementation davon wäre:
$finalHash = md5(md5($salt) . md5($password))
Es gibt 2 Varianten wie man den Salt einsetzen kann:
Global Salt
Ein Globaler Salt ist ein einziger Text dem allen hashes angehängt wird.
User Salt
Ein User Salt wird spezifisch für jeden Benutzer generiert, was etwas mehr Overhead produziert.
Probleme
Length-Extension
Viele Populäre Hashes haben das Length Extension Problem dadurch kann man die Hashes schneller Brute-forcen , voraussichtlich es ist ein globaler Salt gegeben.
Um dies zu vermeiden sollte man das Passwort dem Salt concatenieren und nicht umgekehrt.