postfixadmin忘記密碼后的修改密碼方法詳解
本文實例講述了postfixadmin忘記密碼后的修改密碼方法。分享給大家供大家參考,具體如下:
Postfix Admin 是一個基于Web的 Postfix 郵件發(fā)送服務(wù)器的管理工具,可以直接管理 Postfix 的虛擬域名和用戶。
由于有一段時間沒使用postfixadmin增刪用戶了, 突然需使用時忘記了管理密碼, 使用老外的方式直接在數(shù)據(jù)庫里修改密碼, 后登錄成功
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;
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php加密方法總結(jié)》、《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)學運算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php正則表達式用法總結(jié)》、及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
- 理解php Hash函數(shù),增強密碼安全
- php password密碼驗證正則表達式(8位長度限制)
- php中實現(xiàn)記住密碼自動登錄的代碼
- 允許phpmyadmin空密碼登錄的配置方法
- WAMPserver配置方法(允許外部訪問、phpmyadmin設(shè)置為輸入用戶名密碼才可登錄等)
- PHP隱形一句話后門,和ThinkPHP框架加密碼程序(base64_decode)
- DEDECMS 重置管理員admin的密碼的php文件
- php adodb連接帶密碼access數(shù)據(jù)庫實例,測試成功
- 用phpmyadmin更改mysql5.0登錄密碼
- 手動配置phpmyadmin和mysql密碼的兩種方案
- php中存儲用戶ID和密碼到mysql數(shù)據(jù)庫的方法
- PHP 登錄記住密碼實現(xiàn)思路
相關(guān)文章
PHP設(shè)計模式之策略模式(Strategy)入門與應(yīng)用案例詳解
這篇文章主要介紹了PHP設(shè)計模式之策略模式(Strategy)入門與應(yīng)用,結(jié)合具體實例形式詳細分析了PHP策略模式的相關(guān)概念、原理、使用方法及操作注意事項,需要的朋友可以參考下2019-12-12
Ajax實時驗證用戶名/郵箱等是否已經(jīng)存在的代碼打包
一個網(wǎng)站采用Ajax技術(shù),不僅可以改善網(wǎng)站的用戶體驗性,而且大大節(jié)約了寶貴的帶寬,減輕了服務(wù)器負荷(不再需要交互整個網(wǎng)頁內(nèi)容,而是局部)。2011-12-12
phpstorm安裝xdebug(phpstudy環(huán)境下)成功運行的操作步驟
這篇文章主要介紹了phpstorm安裝xdebug(phpstudy環(huán)境下)成功運行,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09

