sub random_password() {
# Konsonanten (groß und klein)
my @k = ('b'..'d', 'g'..'h', 'j'..'n', 'p'..'t', 'v'..'z');
my @K = map { (uc $_) } @k;
# Vokale (groß und klein)
my @v = split //, 'aeiou';
my @V = map { (uc $_) } @v;
# Ziffern
my @d = '0'..'9';
# Sonderzeichen
my @x = split //, '@%$#.+-=&!()<>';
# Die "Mischung" der Passwörter kann über die
# Elemente in dieser Liste konfiguriert werden.
# Jedes Element ist eine mögliche Phrase im
# generierten Passwort.
my @pwd = ($k[rand @k] . $v[rand @v],
$K[rand @K] . $v[rand @v],
$K[rand @K] . $v[rand @v],
$v[rand @v] . $k[rand @k],
$K[rand @K] . $v[rand @v] . $k[rand @k],
$k[rand @k] . $v[rand @v] . $k[rand @k],
$k[rand @k] . $v[rand @v] . $k[rand @k],
$v[rand @v] . $k[rand @k] . $v[rand @v],
$V[rand @V] . $k[rand @k] . $v[rand @v],
$d[rand @d],
$d[rand @d],
$x[rand @x],
);
# Zusammenbauen eines "zufälligen" Passworts aus den
# Phrasen.
my $pwd = '';
while (length($pwd) <= 6 && @pwd) {
my $i = rand @pwd;
next if (length($pwd . $pwd[$i]) >= 9);
$pwd .= $pwd[$i];
$pwd[$i] = $pwd[$#pwd];
pop @pwd;
}
return $pwd;
}
my $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64];