Programmierung in PERL

Benutzung von CRYPT zur Passwortabfrage

von Roland Bernert, R egionaler Arbeitskreis Internet am Oberschulamt Karlsruhe

#! /usr/bin/perl
# --------------------------------------------------
# Zeigt die Benutzung des Befehls CRYPT, um eine
# Passwortabfrage durchführen zu können 
# --------------------------------------------------
$password_file="/etc/shadow";
# ---------------------------------------------------
print "Your Username: "; chomp($username=<STDIN>);
print "Your Password: "; chomp($password=<STDIN>);
#
# finde Passwort von $username
$password_ok=&password_test($username,$password);
print "$dateipwd   $password_ok\n\n";
#
# --------------------------------------------------
# SUBROUTINES
# --------------------------------------------------
sub password_test { # teste, ob das Password des Benutzers stimmt
    local $dateiuser,$dateipwd, @pwdarray;
    my $uname=$_[0]; #print "$uname\n";
    my $pwd=$_[1];   #print "$pwd\n";
    my $pwd_ok="false";
    open(FILE,$password_file);
    while (<FILE>) { 
      @pwdarray_=split(/:/);
      $dateiuser = @pwdarray_[0];
      $dateipwd  = crypt($pwd,@pwdarray_[1]);
      if (($dateiuser eq $uname) && ($dateipwd eq @pwdarray_[1])) { 
         $pwd_ok="true"; last; 
      }
    }
    close(FILE);
    return $pwd_ok;
}
# --------------------------------------------------