用户口令检查(/etc/passwd)

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

<?

/*

* 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;

}

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航