本文主要是介绍使用php校验修改*nix系统用户名密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
新版的unix类系统的密码存放在 /etc/shadow 中。<?php
/**
* unix 类/etc/shadow密码工具
* @author zhuyubing
* */
class password{
//检查密码是否正确
public static function verify($userName, $password) {
$lines = file('/etc/shadow');
for($count=0; $count<count($lines); $count++) {
list($user,$cryptedpass) = explode(":",$lines[$count]);
if ($user == $userName) {
break;
}
}
if (!$user) return 0;
$salt = substr($cryptedpass,0,strrpos($cryptedpass,'$')+1);
$Pass = crypt($password,$salt);
if($Pass == $cryptedpass) {
return 1;
} else {
return -1;
}
}
//修改密码
public static function change($userName,$password){
$lines = file('/etc/shadow');
for($count=0; $count<count($lines); $count++) {
$arr=explode(':',$lines[$count]);
if ($arr[0] == $userName) {
$salt = '$1$H8CSLmlX$';
$arr[1] = crypt($password,$salt);
$arr[2] = intval(time()/86400);
$lines[$count]=implode(':',$arr);
file_put_contents('/etc/shadow',implode("",$lines));
break;
}
}
return 1;
}
}
//echo password::change('root','admin1');
//echo password::verify('root','admin1');
?>
这篇关于使用php校验修改*nix系统用户名密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!