當前位置:菜譜大全網 - 菜譜 - php如何生成32位隨機字符串?

php如何生成32位隨機字符串?

如果用戶註冊生成隨機密碼,用戶在重置密碼時需要生成隨機密碼。隨機密碼只是壹串固定長度的字符。以下是生成隨機字符串的三種基本方法:

方法壹

1.生成壹個33–126的隨機整數,如35。

2.將35轉換成對應的ASCII字符,比如35對應#。

3.重復上述步驟1和2n次,連接成壹個n位密碼。

該算法主要使用兩個函數。mt_rand (int $min,int $max)函數用於生成隨機整數,其中$min-$max是ASCII碼的取值範圍,這裏取33 -126,取值範圍可以根據需要調整,比如ASCII碼表中97-122位對應的英文字母a-z。Chr (int $ascii)函數用於將相應的整數$ascii轉換成相應的字符。

功能?create_password($pw_length?=?

{?

$randpwd?=?";?

為了什麽?($i?=?0;?$i?& lt?$ pw _ length?$i++)?

{?

$randpwd?。=?chr(mt_rand(33,?126));?

}?

回歸?$ randpwd?

}?

//?調用這個函數,傳遞長度參數$pw_length?=?6?

回聲?create _ password(6);方法2

1,預置壹個字符串$chars,包括a–z,a–z,0–9,以及壹些特殊字符。

2.在$chars字符串中隨機選擇壹個字符。

3.重復第二步n次,得到長度為n的密碼..

功能?生成_密碼(?$長度?=?8?)?{?

//?密碼字符集,可以添加任何妳需要的字符?

$chars?=?abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz 0123456789!@#$%^&;*()-_?[]{ } & lt;& gt~`+=,.;:/?|';?

$password?=?";?

為了什麽?(?$i?=?0;?$i?& lt?$長度;?$i++?)?

{?

//?這裏有兩種獲取字符的方法?

//?首先是使用?substr?截取$chars中的任何字符;?

//?二是取壹個字符數組?$chars?任何元素?

//?$password?。=?substr($chars,?mt_rand(0,?strlen($chars)?–?1),?1);?

$password?。=?$chars[?mt_rand(0,?strlen($chars)?-?1)?];?

}?

回歸?$ password?

}方法三

1,預置壹個字符數組$chars,包括a–z,a–z,0–9,以及壹些特殊字符。

2.通過array_rand()從數組$chars中隨機選擇$length元素。

3.根據得到的鍵名數組$keys,從數組$chars中取出字符拼接字符串。這種方法的缺點是不會重復取相同的字符。

功能?make_password(?$長度?=?8?)?

{?

//?密碼字符集,可以添加任何妳需要的字符?

$chars?=?數組(' a ',?b ',?c ',?d ',?e ',?f ',?g ',?h ',?

我',?j ',?k ',?l ',' m ',?n ',?奧,,?p ',?q ',?r ',?s ',?

t ',?u ',?v ',?w ',?x ',?y ',' z ',?壹個',?b ',?c ',?d ',?

e ',?f ',?g ',?h ',?我',?j ',?k ',?l ',' M ',?n ',?奧,,?

p ',?q ',?r ',?s ',?t ',?u ',?v ',?w ',?x ',?y ',' Z ',?

'0′,? '1′,?'2′,? '3′,?'4′,? '5′,?'6′,? '7′,?'8′,? '9′,?'! ',?

'@','#',?'$',?'%',?'^',?& amp',?'*',?'(',?')',?'-',?'_',?

'[',?' ]',?'{',?'}',?& lt',?& gt',?'~',?'`',?'+',?'=',?',',?

'.',?'; ',?':',?'/',?'? ',?'|');?

//?妳在線嗎?$chars?隨便拿?$長度?數組元素的鍵名?

$keys?=?($chars,?$ length);?

$password?=?";?

為了($我?=?0;?$i?& lt?$長度;?$i++)?

{?

//?威爾。$長度?數組元素串聯成壹個字符串?

$password?。=?$ chars[$ keys[$ I]];?

}?

回歸?$ password?

}