熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

php生成隨機密碼的幾種方法

2013-11-15 12:23:16  來源: PHP編程 

  使用PHP開發應用程序尤其是網站程序常常需要生成隨機密碼如用戶注冊生成隨機密碼用戶重置密碼也需要生成一個隨機的密碼隨機密碼也就是一串固定長度的字符串這裡我收集整理了幾種生成隨機字符串的方法以供大家參考

  方法一

   中生成一個隨機整數

   轉換成對應的ASCII碼字符 對應 #

  重復以上 步驟 n 次連接成 n 位的密碼

  該算法主要用到了兩個函數mt_rand ( int $min int $max )函數用於生成隨機整數其中 $min – $max 為 ASCII 碼的范圍這裡取 可以根據需要調整范圍如ASCII碼表中 位對應 a – z 的英文字母具體可參考 ASCII碼表 chr ( int $ascii )函數用於將對應整數 $ascii 轉換成對應的字符

  

  function create_password($pw_length = )
{
    $randpwd = ;
    for ($i = ; $i < $pw_length; $i++)
    {
        $randpwd = chr(mt_rand( ));
    }
    return $randpwd;
}

  // 調用該函數傳遞長度參數$pw_length =
echo create_password();

  方法二

  預置一個的字符串 $chars 包括 a – zA – Z以及一些特殊字符

  在 $chars 字符串中隨機取一個字符

  重復第二步 n 次可得長度為 n 的密碼

  

  function generate_password( $length = ) {
    // 密碼字符集可任意添加你需要的字符
    $chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_ []{}<>~`+=;:/?|;

  $password = ;
    for ( $i = ; $i < $length; $i++ )
    {
        // 這裡提供兩種字符獲取方式
        // 第一種是使用 substr 截取$chars中的任意一位字符
        // 第二種是取字符數組 $chars 的任意元素
        // $password = substr($chars mt_rand( strlen($chars) ) );
        $password = $chars[ mt_rand( strlen($chars) ) ];
    }

  return $password;
}

  方法三

  預置一個的字符數組 $chars 包括 a – zA – Z以及一些特殊字符

  通過array_rand()從數組 $chars 中隨機選出 $length 個元素
From:http://tw.wingwit.com/Article/program/PHP/201311/20853.html

    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.