postfixadmin忘記密碼后的修改密碼方法詳解
來源:易賢網(wǎng) 閱讀:1738 次 日期:2016-08-12 14:30:37
溫馨提示:易賢網(wǎng)小編為您整理了“postfixadmin忘記密碼后的修改密碼方法詳解”,方便廣大網(wǎng)友查閱!

本文實例講述了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;

}

希望本文所述對大家PHP程序設(shè)計有所幫助。

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:postfixadmin忘記密碼后的修改密碼方法詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)