_roro: loginsystem

Beitrag lesen

Hi,

entschuldigung , wollte das eig bei PHP speichern, hab mich aber verdrückt ;)

Pech gehabt ;-)

Hier eine mögliche Lösung in PERL:

Q: Wie kann ich in einem PERL Script anhand einer Passworddatei welche mit *htpasswd* angelegt
wurde eine Authentifizierung vornehmen?

A: Auch PERL bietet die crypt() funktion. Jedes encryptetes Passwort hat am Anfang genau zwei
Zeichen welche das zum Crypten verwendete *Salt* zeigen.
Mit diesem *Salt* wird das zur Authentifizierung eingetippte Passwort gecrypted und das Ergebnis
ist bei Übereinstimmung der Passworte dasselbe.

Hier ein Beispiel:
$uid = 'roro';
$pas = 'roro';

print ispasswd($uid,$pas),"\n";

sub ispasswd{
 my ($uid, $pas) = @_;
 while(<DATA>){
  chomp;
  my ($name,$in) = split /:/, $_;
  my $salt = substr $in,0,2;
  my $cpas = crypt($pas,$salt);

if( $uid eq $name and $in eq $cpas){
   #print "$uid $name | $cpas $in\n";
   return 1;
  }
 }
 return 0;
}

__END__
roro:bN638DMXoBPnw
ulla:XU0x7/..K2S1o
otto:ukfIWWsz9rYa6

--roro