首页 > 语言 > PHP > 正文

postfixadmin忘记密码后的修改密码方法详解

2024-05-04 23:48:27
字体:
来源:转载
供稿:网友

本文实例讲述了postfixadmin忘记密码后的修改密码方法。分享给大家供大家参考,具体如下:

Postfix Admin 是一个基于Web的 Postfix 邮件发送服务器的管理工具,可以直接管理 Postfix 的虚拟域名和用户。

由于有一段时间没使用postfixadmin增删用户了, 突然需使用时忘记了管理密码,  使用老外的方式直接在数据库里修改密码, 后登录成功

php源码:

<?phpecho md5crypt("新密码");// md5crypt// Action: Creates MD5 encrypted password// Call: md5crypt (string cleartextpassword)function md5crypt($pw, $salt = "", $magic = ""){  $MAGIC = "$1$";  if ($magic == "")  {    $magic = $MAGIC;  }  if ($salt == "")  {    $salt = create_salt();  }  $slist = explode("$", $salt);  if (isset($slist[0]) && $slist[0] == "1")  {    $salt = $slist[1];  }  $salt = substr($salt, 0, 8);  $ctx = $pw.$magic.$salt;  $final = hex2bin(md5($pw.$salt.$pw));  for ($i = strlen($pw); $i > 0; $i -= 16)  {    if ($i > 16)    {      $ctx .= substr($final,0,16);    }    else    {      $ctx .= substr($final,0,$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,0,16);    }    if ($i % 3)    {      $ctx1 .= $salt;    }    if ($i % 7)    {      $ctx1 .= $pw;    }    if ($i & 1)    {      $ctx1 .= substr($final, 0, 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)), 0, 8);}// PHP around 5.3.8 includes hex2bin as native function - http://php.net/hex2binfunction 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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选