




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——php生成隨機密碼的4種方法php生成隨機密碼的4種方法
使用PHP開發(fā)應用程序,尤其是網(wǎng)站程序,往往需要生成隨機密碼,如用戶注冊生成隨機密碼,用戶重置密碼也需要生成一個隨機的密碼。隨機密碼也就是一串固定長度的字符串,這里我收集整理了幾種生成隨機字符串的方法,以供大家參考。
方法一:
1、在33–126中生成一個隨機整數(shù),如35,
2、將35轉(zhuǎn)換成對應的ASCII碼字符,如35對應#
3、重復以上1、2步驟n次,連接成n位的密碼
該算法主要用到了兩個函數(shù),mt_randint$min,int$max函數(shù)用于生成隨機整數(shù),其中$min–$max為ASCII碼的范圍,這里取33-126,可以根據(jù)需要調(diào)整范圍,如ASCII碼表中97–122位對應a–z的英文字母,概括可參考ASCII碼表;chrint$ascii函數(shù)用于將對應整數(shù)$ascii轉(zhuǎn)換成對應的字符。
functioncreate_password$pw_length=8$randpwd=;for$i=0;$i$pw_length;$i++$randpwd.=chrmt_rand33,126;return$randpwd;//調(diào)用該函數(shù),傳遞長度參數(shù)$pw_length=6echocreate_password6;
方法二:
1、預置一個的字符串$chars,包括a–z,A–Z,0–9,以及一些特殊字符
2、在$chars字符串中隨機取一個字符
3、重復其次步n次,可得長度為n的密碼
functiongenerate_password$length=8//密碼字符集,可任意添加你需要的字符$chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^*-_[]~`+=,.;:/?|;$password=;for$i=0;$i$length;$i++//這里供給兩種字符獲取方式//第一種是使用substr截取$chars中的任意一位字符;//其次種是取字符數(shù)組$chars的任意元素//$password.=substr$chars,mt_rand0,strlen$chars-1,1;$password.=$chars[mt_rand0,strlen$chars-1];return$password;
方法三:
1、預置一個的字符數(shù)組$chars,包括a–z,A–Z,0–9,以及一些特殊字符
2、通過array_rand從數(shù)組$chars中隨機選出$length個元素
3、根據(jù)已獲取的鍵名數(shù)組$keys,從數(shù)組$chars取出字符拼接字符串。該方法的缺點是一致的字符不會重復取。
functionmake_password$length=8
//密碼字符集,可任意添加你需要的字符
$chars=arraya,b,c,d,e,f,g,h,
i,j,k,l,m,n,o,p,q,r,s,
t,u,v,w,x,y,z,A,B,C,D,
E,F,G,H,I,J,K,L,M,N,O,
P,Q,R,S,T,U,V,W,X,Y,Z,
0,1,2,3,4,5,6,7,8,9,!,
@,#,$,%,^,,*,,,-,_,
[,],,,,,~,`,+,=,,,
.,;,:,/,?,|;
//在$chars中隨機取$length個數(shù)組元素鍵名
$keys=array_rand$chars,$length;
$password=;
for$i=0;$i$length;$i++
//將$length個數(shù)組元素連接成字符串
$password.=$chars[$keys[$i]];
return$password;
方法四:
本方法是本文被藍色夢想轉(zhuǎn)載后,一名網(wǎng)友供給的一個新方法,算法簡樸,代碼簡短,只是由于md5函數(shù)的返回值的起因,生成的密碼只包括字母和數(shù)字,不過也算是一個不錯的方法。算法思想:
1、time獲取當前的Unix時間戳
2、將第一步獲取的時間戳舉行md5加密
3、將其次步加密的結(jié)果,截取n位即得想要的密碼
functionget_password$length=8$str=substrmd5time,0,6;return$str;
時間效率比較
我們使用以下PHP代碼,計算上面的.4個隨機密碼生成函數(shù)生成6位密碼的運行時間,進而對他們的時間效率舉行一個簡樸的比較。
functiongetmicrotime
list$usec,$sec=explode,microtime;
returnfloat$usec+float$sec;
//記錄開頭時間
$time_start=getmicrotime;
//這里放要執(zhí)行的PHP代碼,如:
//echocreate_password6;
//記錄終止時間
$time_end=getmicrotime;
$time=$time_end-$time_start;
//輸出運行總時間
echo執(zhí)行時間$timeseconds;
?
最終得出的結(jié)果是:
方法一:9.8943710327148E-5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 清廉課題申報書怎么寫
- 科研課題申報書抄襲
- 別墅擴建土建合同范本
- 衛(wèi)浴勞動合同范本
- 音樂 課題申報書
- 國家立項課題申報書
- 合同附合同范本
- 單項委托預定酒店合同范本
- 養(yǎng)殖土雞合同范本
- 中環(huán)租房合同范本
- 2025年湖南鐵道職業(yè)技術(shù)學院單招職業(yè)技能測試題庫帶答案
- 2025年江蘇揚州市儀征市眾鑫建設(shè)開發(fā)有限公司招聘筆試參考題庫附帶答案詳解
- 部編高教版2023·職業(yè)模塊 中職語文 2.《寧夏閩寧鎮(zhèn):昔日干沙灘今日金沙灘》 課件
- 安全環(huán)保職業(yè)健康法律法規(guī)清單2024年
- 2022年袋鼠數(shù)學競賽真題一二年級組含答案
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學
- 2023年高考語文全國乙卷《長出一地的好蕎麥》解析
- 清鈴撳針介紹
- 東方要略(1-完整版)
- 2022年三類人員(安全B證)安全繼續(xù)教育考試知識點
- 中國石油天然氣集團公司保密管理規(guī)定
評論
0/150
提交評論