linux-l: crypt() problem

JSC schlegel at lnx01.tfh-berlin.de
So Apr 25 18:00:18 CEST 1999


hallo,

das folgende problem entsteht auf ein und demselben rechner.

ich erzeuge mir ein passwort aus 3 zeichen: key
und einem definierten salt: rt

perl -e 'print crypt($ARGV[0],$ARGV[1]),"\n"' key rt
=> rtsIDodDuGqhM

das ergebnis trage ich in eine radiusd config und in
/etc/passwd ein.

der radiusd kann mit diesem passwort arbeiten:
code:
#define __USE_XOPEN 
#include        <unistd.h>
...strcmp(a,crypt(real,a))...

dasselbe passwort via /etc/passwd auf redhat 3.0.4
ist unbrauchbar. folgende perl-routine errechnet
ploetzlich ein ganz anderes passwort:

#!/usr/bin/perl

print "Username: ";
$a = <STDIN>;
chop $a;
if( !open(FD,"grep ^${a}: /etc/passwd |") ){
   print "scheisse.\n";
   exit(1);
}
if( <FD> =~ /^[^:]+:([^:]+):/ ){
     $b = $1;
}
print "Klartextpasswort: ";
$c = <STDIN>;

print "aus der passwd: $b \n";
print "neu gecryptet: ", crypt("$c", substr($b,0,2)), "\n";

aufruf und output:
[/root]# ./chkpass.pl 
Username: jsc
Klartextpasswort: key
aus der passwd: rtsIDodDuGqhM 
neu gecryptet: rt12AYThF6Was

warum, und wo ist mein denkfehler ?????????????????????

phaenomen 2: auf demselben rechner tritt dieses problem 
mit einem 8 zeichen langen passwort nicht auf.

confused
JSC
-- 
 --------------------------------------------------------------
| Jens Schlegel                                                |
| TFH Berlin         email: schlegel at tfh-berlin.de             |
 --------------------------------------------------------------



Mehr Informationen über die Mailingliste linux-l