postfixadmin忘记密码后的修改密码方法详解
本文实例讲述了postfixadmin忘记密码后的修改密码方法。分享给大家供大家参考,具体如下:
PostfixAdmin是一个基于Web的Postfix邮件发送服务器的管理工具,可以直接管理Postfix的虚拟域名和用户。
由于有一段时间没使用postfixadmin增删用户了,突然需使用时忘记了管理密码, 使用老外的方式直接在数据库里修改密码,后登录成功
php源码:
<?php echomd5crypt("新密码"); //md5crypt //Action:CreatesMD5encryptedpassword //Call:md5crypt(stringcleartextpassword) functionmd5crypt($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; } functioncreate_salt() { srand((double)microtime()*1000000); returnsubstr(md5(rand(0,9999999)),0,8); } //PHParound5.3.8includeshex2binasnativefunction-http://php.net/hex2bin functionhex2bin($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; } functionto64($v,$n) { $ITOA64="./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $ret=""; while(($n-1)>=0) { $n--; $ret.=$ITOA64[$v&0x3f]; $v=$v>>6; } return$ret; }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php加密方法总结》、《PHP编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。