goodpasswd: Added
This commit is contained in:
parent
f814f57f5d
commit
921a486b47
34
goodpasswd/goodpasswd
Executable file
34
goodpasswd/goodpasswd
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# This program generates passwords that:
|
||||
#
|
||||
# * are hard to guess
|
||||
# * will be displayed unambigously in any (normal) font
|
||||
# * will survive being passed through a bad fax machine
|
||||
# * has UPPER lower number and sign
|
||||
#
|
||||
# Too close: B8 cC g9 kK lI l1 oO O0 pP sS uU vV xX zZ ,. :; `' S5
|
||||
# Causes problems in URLs: @/:
|
||||
# Causes problems in shell: ! " # $ & ( ) [ ] { } ? | < > \ *
|
||||
# SQL uses: % for wildcard
|
||||
# Hard to type: ^ ~ ¨ ¤ § ½ æ ø å Æ Ø Å
|
||||
# Never 2 same chars next to eachother. (--) is bad
|
||||
|
||||
my $pw;
|
||||
my @chars=split //, 'abdefhijmnqrtyADEFGHJLMNQRTY23467=+-';
|
||||
do {
|
||||
$pw = "";
|
||||
for (1..12) {
|
||||
do {
|
||||
# avoid double chars (such as --)
|
||||
$this = $chars[rand $#chars+1]
|
||||
} while($last eq $this);
|
||||
$last = $this;
|
||||
$pw .= $this;
|
||||
}
|
||||
} while (not($pw =~ /[A-Z]/ and
|
||||
$pw =~ /[a-z]/ and
|
||||
$pw =~ /[0-9]/ and
|
||||
$pw =~ /[^a-zA-Z0-9]/));
|
||||
|
||||
print "$pw\n";
|
Loading…
Reference in a new issue