本文实例讲述了postfixadmin忘记密码后的修改密码方法。分享给大家供大家参考,具体如下:
Postfix Admin 是一个基于Web的 Postfix 邮件发送服务器的管理工具,可以直接管理 Postfix 的虚拟域名和用户。
由于有一段时间没使用postfixadmin增删用户了,突然需使用时忘记了管理密码,使用老外的方式直接在数据库里修改密码,后登录成功
PHP源码:
PHP;">
0; $i -= 16)
{
if ($i > 16)
{
$ctx .= substr($final,16);
}
else
{
$ctx .= substr($final,$i);
}
}
$i = strlen($pw);
while ($i > 0)
{
if ($i & 1)
{
$ctx .= chr(0);
}
else
{
$ctx .= $pw[0];
}
$i = $i >> 1;
}
$final = hex2bin(md5($ctx));
for ($i=0; $i<1000; $i++)
{
$ctx1 = "";
if ($i & 1)
{
$ctx1 .= $pw;
}
else
{
$ctx1 .= substr($final,16);
}
if ($i % 3)
{
$ctx1 .= $salt;
}
if ($i % 7)
{
$ctx1 .= $pw;
}
if ($i & 1)
{
$ctx1 .= substr($final,16);
}
else
{
$ctx1 .= $pw;
}
$final = hex2bin(md5($ctx1));
}
$passwd = "";
$passwd .= to64(((ord($final[0]) << 16) | (ord($final[6]) << 8) | (ord($final[12]))),4);
$passwd .= to64(((ord($final[1]) << 16) | (ord($final[7]) << 8) | (ord($final[13]))),4);
$passwd .= to64(((ord($final[2]) << 16) | (ord($final[8]) << 8) | (ord($final[14]))),4);
$passwd .= to64(((ord($final[3]) << 16) | (ord($final[9]) << 8) | (ord($final[15]))),4);
$passwd .= to64(((ord($final[4]) << 16) | (ord($final[10]) << 8) | (ord($final[5]))),4);
$passwd .= to64(ord($final[11]),2);
return $magic.$salt.'$'.$passwd;
}
function create_salt()
{
srand((double) microtime() * 1000000);
return substr(md5(rand(0,9999999)),8);
}
// PHP around 5.3.8 includes hex2bin as native function - http://PHP.net/hex2bin
function hex2bin($str)
{
$len = strlen($str);
$nstr = "";
for ($i = 0; $i < $len; $i += 2)
{
$num = sscanf(substr($str,$i,2),"%x");
$nstr .= chr($num[0]);
}
return $nstr;
}
function to64($v,$n)
{
$ITOA64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$ret = "";
while (($n - 1) >= 0)
{
$n--;
$ret .= $ITOA64[$v & 0x3f];
$v = $v >> 6;
}
return $ret;
}
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》、及《》
希望本文所述对大家PHP程序设计有所帮助。