来源:www.cncfan.com | 2006-1-11 | (有3050人读过)
<? /* * etc.passwd.inc v1.0 * * Syntax: * verifypasswd(string USERNAME, string PASSWORD) * * The function will return one of three values: * -2 if there was a file reading error * -1 if the password is incorrect * 0 if the username doesn’t exist * 1 if the password is correct * * Written by WarMage ( michael@irc.net ) * */
function verifypasswd ($USERNAME, $PASSWORD) {
$fd = fopen( "/etc/passwd", "r"); $contents = fread($fd, filesize( "/etc/passwd")); fclose($fd); if (!$contents) return -2;
$lines = split( "n", $contents); $passwd = array();
for($count=0;$count<count($lines);$count++) { list ($user,$pass) = split( ":",$lines[$count]); if ($user == $USERNAME) { break; } }
if (!$user) return 0;
$cryptedpass = $pass; $salt = substr($cryptedpass,0,2); $Pass = crypt($PASSWORD,$salt);
if ($Pass == $cryptedpass) { return 1; } else { return -1; } } ?>
|