<button id="g80sy"></button>
  • <abbr id="g80sy"></abbr>
  • <button id="g80sy"></button>
    <rt id="g80sy"><delect id="g80sy"></delect></rt>
  • php怎么生成隨機(jī)密碼

    程序猿 2021-02-25 20:06:12 2139瀏覽 加載中

    如果只是生成密碼可以使用PHP提供的密碼函數(shù)

    password_hash();

    驗(yàn)證密碼可以使用

    password_verify();

    php怎么生成隨機(jī)密碼

      使用PHP開發(fā)應(yīng)用程序,尤其是網(wǎng)站程序,常常需要生成隨機(jī)密碼,如用戶注冊(cè)生成隨機(jī)密碼,用戶重置密碼也需要生成一個(gè)隨機(jī)的密碼。隨機(jī)密碼也就是一串固定長(zhǎng)度的字符串,下面小編收集整理了幾種生成隨機(jī)字符串的'方法,以供大家參考。

      方法一:

      1、在 33 – 126 中生成一個(gè)隨機(jī)整數(shù),如 35,

      2、將 35 轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼字符,如 35 對(duì)應(yīng) #

      3、重復(fù)以上 1、2 步驟 n 次,連接成 n 位的密碼

      該算法主要用到了兩個(gè)函數(shù),mt_rand ( int $min , int $max )函數(shù)用于生成隨機(jī)整數(shù),其中 $min – $max 為 ASCII 碼的范圍,這里取 33 -126 ,可以根據(jù)需要調(diào)整范圍,如ASCII碼表中 97 – 122 位對(duì)應(yīng) a – z 的英文字母,具體可參考 ASCII碼表; chr ( int $ascii )函數(shù)用于將對(duì)應(yīng)整數(shù) $ascii 轉(zhuǎn)換成對(duì)應(yīng)的字符。

      function create_password($pw_length = 8)
      {
      $randpwd = '';
      for ($i = 0; $i < $pw_length; $i++)
      {
      $randpwd .= chr(mt_rand(33, 126));
      }
      return $randpwd;
      }

      // 調(diào)用該函數(shù),傳遞長(zhǎng)度參數(shù)$pw_length = 6

      echo create_password(6);

      方法二:

      1、預(yù)置一個(gè)的字符串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符

      2、在 $chars 字符串中隨機(jī)取一個(gè)字符

      3、重復(fù)第二步 n 次,可得長(zhǎng)度為 n 的密碼

      function generate_password( $length = 8 ) {
      // 密碼字符集,可任意添加你需要的字符
      $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|';
      $password = '';
      for ( $i = 0; $i < $length; $i++ )
      {
      // 這里提供兩種字符獲取方式
      // 第一種是使用 substr 截取$chars中的任意一位字符;
      // 第二種是取字符數(shù)組 $chars 的任意元素
      // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
      $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
      }
      return $password;
      }


    標(biāo)簽: php 隨機(jī)密碼
    最后修改:2025-05-30 00:30:26

    非特殊說(shuō)明,本博所有文章均為博主原創(chuàng)。

    主站蜘蛛池模板: 通州区| 静乐县| 山东| 大庆市| 韩城市| 延川县| 瓦房店市| 文水县| 高碑店市| 阿克苏市| 郎溪县| 逊克县| 栾城县| 厦门市| 高安市| 英吉沙县| 保康县| 乌什县| 防城港市| 石屏县| 六盘水市| 西乌珠穆沁旗| 望江县| 二连浩特市| 攀枝花市| 榆林市| 喜德县| 钟山县| 池州市| 洛浦县| 迭部县| 新泰市| 邛崃市| 通化县| 博白县| 太仆寺旗| 定南县| 灵璧县| 同江市| 灵石县| 朝阳区|