Salt (deutsch: „Salz") ist ein zufälliger Wert, der einem Passwort vor dem Hashing hinzugefügt wird. Dadurch bekommen zwei Nutzer mit demselben Passwort unterschiedliche Hashes — und Angreifer können fertige Hash-Tabellen (Rainbow Tables) nicht mehr verwenden.

Warum Salt wichtig ist

Wird ein Passwort nur gehasht, führt dasselbe Passwort immer zum selben Hash. Ein Angreifer, der die Datenbank stiehlt, kann dann Millionen Passwörter gegen vorberechnete Tabellen abgleichen. Mit einem Salt pro Nutzer ist jeder Hash einzigartig, selbst wenn tausend Konten „Passwort123" verwenden.

So funktioniert Salting

# Pseudocode: Salt + Passwort = Hash
salt = random_hex(16)          # zufälliger Wert, z.B. 9f2c...a1
hash = sha256(salt + password) # gemeinsam hashen
speichern: salt, hash          # Salt wird neben dem Hash abgelegt

Beim Login wird das eingegebene Passwort mit dem gespeicherten Salt erneut gehasht und mit dem gespeicherten Hash verglichen. Das Salt selbst muss nicht geheim sein — sein Zweck ist die Individualisierung, nicht die Geheimhaltung.

Moderne Praxis

  • Langsame Algorithmen: Argon2, bcrypt oder scrypt sind bewusst rechenintensiv und machen Brute-Force-Angriffe unpraktikabel.
  • Einzigartiges Salt: Jedes Passwort bekommt einen eigenen, zufälligen Salt — niemals einen globalen Wert für alle Konten.
  • Mehr Schutz: Salt verhindert, dass gleiche Passwörter als gleiche Hashes erkennbar sind, und schützt vor Rainbow Tables.

Salting ist Teil jeder soliden Verschlüsselungs- und Hashing-Strategie. Zusammen mit Zwei-Faktor-Authentifizierung bildet es die Basis moderner Kontosicherheit.