postfixadmin忘记密码后的修改密码方法详解
程序员文章站
2024-04-02 17:07:16
本文实例讲述了postfixadmin忘记密码后的修改密码方法。分享给大家供大家参考,具体如下:
postfix admin 是一个基于web的 postfix 邮件发送...
本文实例讲述了postfixadmin忘记密码后的修改密码方法。分享给大家供大家参考,具体如下:
postfix admin 是一个基于web的 postfix 邮件发送服务器的管理工具,可以直接管理 postfix 的虚拟域名和用户。
由于有一段时间没使用postfixadmin增删用户了, 突然需使用时忘记了管理密码, 使用老外的方式直接在数据库里修改密码, 后登录成功
php源码:
<?php echo 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/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加密方法总结》、《php编码与转码操作技巧汇总》、《php面向对象程序设计入门教程》、《php数学运算技巧总结》、《php数组(array)操作技巧大全》、《php字符串(string)用法总结》、《php数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
上一篇: Laravel5权限管理方法详解
下一篇: PHP获取当前文件的父目录方法汇总
推荐阅读
-
iphone忘记密码怎么恢复出厂设置(iphone恢复出厂设置的方法)
-
电脑密码忘了怎么办 电脑密码忘记的图文解决方法汇总
-
手机压缩包忘记密码怎么解压(忘记压缩包密码的处理方法)
-
iphone修改密码在哪里(iphone密码忘了解开手机的方法)
-
手机压缩包忘记密码怎么解压(忘记压缩包密码的处理方法)
-
iphone修改密码在哪里(iphone密码忘了解开手机的方法)
-
iphone忘记密码怎么恢复出厂设置(iphone恢复出厂设置的方法)
-
Windows下mysql忘记root密码的解决方法(转) 博客分类: 数据库
-
Windows10取消开机登录密码!附带最新2004版无法修改的解决方法!
-
详谈phpAdmin修改密码后拒绝访问的问题