FrankS: Bedeutung von $salt ?

Beitrag lesen

'nAbend
guten Morgen :),

(fast) 'nAbend

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));
}

..............................^
Warum machst Du hier einen Substring? Ist doch sowieso nur 2 Zeichen lang, Dein $salt.

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.

Warum machst Du es nicht so:

nimm einen Satz von Zeichen

@passset = ('a'..'z');

renne 2 mal durch die schleife

for ($i = 0; $i < 2; $i++) {
        # besorge Die eine Zufallszahl, die so groß
        # ist wie der Satz von Zeichen
        $randum_num = int(rand($#passset + 1));
        # lies mit dieser Zahl ein beliebiges Zeichen
        # aus dem Array
        $salt .= @passset[$randum_num];
}

return crypt($pass1,$salt);

So hast Du bei jedem Crypt eine anderes $salt. Du hast eben nicht die ersten beiden Zeichen des Passworts im Klartext da zu stehen und selbst bei gleichem Passwort sieht der gecryptete String anders aus.

Gruß Frank