Alain: Bedeutung von $salt ?

Beitrag lesen

'nAbend

guten Morgen :),

ok das hab ich begriffen aber zum zitat vom link da unten:

"Man braucht eben noch einen zusätzlichen (variablen) Parameter, der bei
immer gleichem Algorithmus und möglicherweise gleichem Passwort unterschiedliche Ergebnisse
bringt.Wenn der User sich dann authorisiert, muß  "salt" bekannt sein, damit das Ergebnis des
erneuten "crypten" des angegebenen Passwortes mit dem z.B. in .htpasswd vergleichbar wird. "

Wie sieht denn diese zusätzliche variable aus?
In meinem beispiel würde das nicht funktionieren:
sub docrypt {
        my $salt='XY';
        local($text) = @_;
        return crypt($text,substr($salt,-2));
}
jedes verschlüsselte passwort erhält am anfang die zwei zeichen XY
ist auch besser als wenn jetzt return crypt($text,substr($text,-2));
dasteht ,dann würde es die ersten beiden zeichen vom eigentlichen
passwort (unverschlüsselt) zeigen.
Um nochmal zum $salt zurückzukommen,wenn zwei verschiedene benutzer dasselbe passwort benutzen und dieses
vom gleichen crypt verschlüsselt würde,dann wäre das passwort verschlüsselt dasselbe auch mit diesem salt crypt verfahren.
Der Vorteil in meinem Fall sehe ich eben nur ,dass man das eigentliche passwort (die ersten beiden zeichen) nicht unverschlüsselt sieht.

Gruss vom Alain

Um das zu verhindern, gibt man bei der Verschlüsselung des Passworts
noch ein Salt an. Das sind zwei alphanumerische Zeichen, die man am
besten bei jedem Verschlüsselungsvorgang zufällig auswählen lässt, um
eben das oben beschriebene Szenario zu vermeiden.

Und dann wird's Salt vorn an das verschlüsselte Passwort angehangen, um später beim Passwortvergleich zum richtigen Ergebnis zu kommen. Denn wer weis denn dann noch, wie die das Salt bei der Kodierung aussah!?!

Gruß Frank

siehe auch http://forum.de.selfhtml.org/archiv/2000_1/t11109.htm#a55999