Warum werden MD5-Passwörter anders gehasht?


22

Ich habe mich schon eine Weile gefragt, warum das Ausführen von "echo 'helloworld' | openssl passwd -1 -stdin" jedes Mal zu unterschiedlichen Ergebnissen führt. Wenn ich einen der Hashes in meine / etc / shadow-Datei lege, kann ich sie als meine verwenden Passwort und Login auf meinem System, wie funktioniert es?

computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$xlm86SKN$vzF1zs3vfjC9zRVI15zFl1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$/0.20NIp$pd4X9xTZ6sF8ExEGqAXb9/
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$sZ65uxPA$pENwlL.5a.RNVZITN/zNJ1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$zBFQ0d3Z$SibkYmuJvbmm8O8cNeGMx1
computer:/ user$ echo 'helloworld' | openssl passwd -1 -stdin
$1$PfDyDWER$tWaoTYym8zy38P2ElwoBe/

Ich würde denken, dass ich, weil ich diesen Hash verwende, um dem System zu beschreiben, wie mein Passwort lauten soll, jedes Mal die gleichen Ergebnisse erzielen sollte. Warum nicht ich


3
Wenn sie jedes Mal gleich wären, könnte ein Angreifer einfach Milliarden von gängigen Passwörtern hacken und leicht nach ihnen suchen.
David Schwartz

Antworten:


37

Sie haben alle ein anderes Salz . Jedes Mal wird ein einzigartiges Salz ausgewählt, da Salze niemals wiederverwendet werden sollten. Durch die Verwendung eines eindeutigen Salzes für jedes Kennwort sind sie resistent gegen Regenbogentabellenangriffe .



6
Es könnte eine gute Idee sein zu erwähnen, dass die Ausgabe das Salt nach dem $ 1 $ enthält (die Dollarsymbole sind Trennzeichen).
Stöbern Sie am

6
Also ist in dem Hash von '$ 1 $ xlm86SKN $ vzF1zs3vfjC9zRVI15zFl1' xlm86SKN das Salz und vzF1zs3vfjC9zRVI15zFl1 das Hash von gesalzener helloworld?
Peter

2
@ Peter: genau.
Joachim Sauer

3

In der Tat erhalten Sie immer das gleiche Ergebnis, wenn Sie der Befehlszeile das Salz geben.

$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
$ echo 'helloworld' | openssl passwd -1 -stdin -salt my-salt
$1$my-salt$S/PsLSioHR8ffN8bpIzsk/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.