In Standard-Hashfunktionen (z. B. UNIX-Kennwörter in / etc / shadow) wird der Salt als Teil des Hash gespeichert.
Übergeben Sie den gespeicherten Hashwert als Salt und Sie sollten das korrekte Ergebnis erhalten.
Der Wert für das gehashte Kennwort in / etc / shadow ist tatsächlich ein $ -begrenzter Datensatz. Zum Beispiel haben wir diesen Hash des Passworts 'blarg':
$1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0
Es gibt drei Felder, die durch $ getrennt sind
- Die Hash-Funktion (in diesem Fall '1' für MD5)
- Das Salz (was "KfcI / JTQ" ist)
- Der Hashwert (der 'b5VTf4i9Mnf6QFgLuVZNM0' ist)
Wenn Sie mkpasswd mehrmals verwenden, ändert sich der Hash.
$ mkpasswd -m md5 blarg $1$Gst52IWk$8ARVeSlpkcZOlyKV10Slu/ $ mkpasswd -m md5 blarg $1$JeqRviA/$GnH/AvGnZEG9wLfJjiaAt1
Wenn Sie jedoch das Salt (dh das zweite Feld) aus dem obigen Hashwert übergeben, können Sie es mit dem ursprünglichen Hash abgleichen:
$ mkpasswd -m md5 -S KfcI/JTQ blarg $1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0
Sie können auch den gesamten Passwort-Hash übergeben (obwohl die Hash-Funktion weggelassen wird).
$ mkpasswd -m md5 -S KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0 blarg $1$KfcI/JTQ$b5VTf4i9Mnf6QFgLuVZNM0
Unter Linux kann der Hashtyp in /etc/login.defs gesteuert werden. Seien Sie vorsichtig, wenn Sie dies ändern, Sie können sich vollständig aus dem System sperren. Ich schlage vor, die Manpage sorgfältig zu lesen, insbesondere unter den Überschriften MD5_CRYPT_ENAB und ENCRYPT_METHOD.