TStanley has asked for the wisdom of the Perl Monks concerning the following question:
#!/opt/perl5/bin/perl -w use strict; use Fcntl qw (:flock); use Term::ReadKey; use Crypt::CBC; my $pass_file="passfile.txt"; my %Mgrs; my $user=shift; if($user eq "KEY"){die"Can't change that!!!!\n";} open(FH,"$pass_file")|| &ERR("Unable to read password file"); flock(FH,LOCK_EX); while(<FH>){ my($mgr,$passwd,$printer) = split /\|/; chomp $printer; $Mgrs{$mgr}=[$passwd,$printer]; } flock(FH,LOCK_UN); close FH; my $ck=$Mgrs{'KEY'}[0]; #debug #print"CK is $ck\n"; if(exists $Mgrs{$user}){ if($Mgrs{$user}[0] eq ""){ &newpass; }else{ & ERR("Incorrect username"); } }else{ & ERR("Non-Existent User"); } sub ERR{ my $msg=shift; print "$msg\n"; die; } sub newpass{ print"Enter new password: "; ReadMode 2; my $p1=<STDIN>; chomp $p1; ReadMode 0; print "\nEnter it again (for verification): "; ReadMode 2; my $p2=<STDIN>; chomp $p2; ReadMode 0; print"\n"; my $crypt=Crypt::CBC->new({'key'=>$ck,'cipher'=>'Blowfish'}); my $d1=$crypt->encrypt_hex($p1); #Debug #print "$d1\n"; my $d2=$crypt->encrypt_hex($p2); #Debug #print "$d2\n"; if($d1 eq $d2){ $Mgrs{$user}[0]= $d1; }else{ &ERR("Non matching passwords."); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Non matching encrypted string
by Abigail-II (Bishop) on Oct 09, 2003 at 16:15 UTC | |
by hardburn (Abbot) on Oct 09, 2003 at 16:24 UTC | |
|
Re: Non matching encrypted string
by sgifford (Prior) on Oct 10, 2003 at 04:02 UTC |