'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