电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP生成隨機密碼4種方法及性能對比

瀏覽:5日期:2022-09-08 13:58:49

方法一:

1、在 33 ? 126 中生成一個隨機整數,如 35,

2、將 35 轉換成對應的ASCII碼字符,如 35 對應 #

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

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

function create_password($pw_length = 8){$randpwd = ’’;for ($i = 0; $i < $pw_length; $i++){$randpwd .= chr(mt_rand(33, 126));}return $randpwd;} // 調用該函數,傳遞長度參數$pw_length = 6echo create_password(6);

方法二:

1、預置一個的字符串 $chars ,包括 a ? z,A ? Z,0 ? 9,以及一些特殊字符

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

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

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

方法三:

1、預置一個的字符數組 $chars ,包括 a ? z,A ? Z,0 ? 9,以及一些特殊字符

2、通過array_rand()從數組 $chars 中隨機選出 $length 個元素

3、根據已獲取的鍵名數組 $keys,從數組 $chars 取出字符拼接字符串。該方法的缺點是相同的字符不會重復取。

function make_password( $length = 8 ){// 密碼字符集,可任意添加你需要的字符$chars = array(’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’, ’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 個數組元素鍵名$keys = array_rand($chars, $length); $password = ’’;for($i = 0; $i < $length; $i++){// 將 $length 個數組元素連接成字符串$password .= $chars[$keys[$i]];} return $password;}

方法四:

本方法是本文被藍色理想轉載后,一名網友提供的一個新方法,算法簡單,代碼簡短,只是因為md5()函數的返回值的緣故,生成的密碼只包括字母和數字,不過也算是一個不錯的方法。算法思想:

1、time() 獲取當前的 Unix 時間戳

2、將第一步獲取的時間戳進行 md5() 加密

3、將第二步加密的結果,截取 n 位即得想要的密碼

function get_password( $length = 8 ){$str = substr(md5(time()), 0, 6);return $str;}

時間效率對比

我們使用以下PHP代碼,計算上面的 4 個隨機密碼生成函數生成 6 位密碼的運行時間,進而對他們的時間效率進行一個簡單的對比。

<?phpfunction getmicrotime(){list($usec, $sec) = explode(' ',microtime());return ((float)$usec + (float)$sec);}// 記錄開始時間$time_start = getmicrotime(); // 這里放要執行的PHP代碼,如:// echo create_password(6); // 記錄結束時間$time_end = getmicrotime();$time = $time_end - $time_start;// 輸出運行總時間echo '執行時間 $time seconds';?>

最終得出的結果是:

方法一:9.8943710327148E-5 秒

方法二:9.6797943115234E-5 秒

方法三:0.00017499923706055 秒

方法四:3.4093856811523E-5 秒

可以看出方法一和方法二的執行時間都差不多,方法四運行時間最短,而方法三的運行時間稍微長點。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: PHP
相關文章:
主站蜘蛛池模板: 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 123悬赏网_发布悬赏任务_广告任务平台| 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 上海网站建设-上海网站制作-上海网站设计-上海做网站公司-咏熠软件 | 字典-新华字典-在线字典查字-字典趣 | PVC地板|PVC塑胶地板|PVC地板厂家|地板胶|防静电地板-无锡腾方装饰材料有限公司-咨询热线:4008-798-128 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 小型手持气象站-空气负氧离子监测站-多要素微气象传感器-山东天合环境科技有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 不干胶标签,不干胶标签纸_厂家-山东同力胶粘制品 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | 烟气在线监测系统_烟气在线监测仪_扬尘检测仪_空气质量监测站「山东风途物联网」 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 微学堂-电动能源汽车评测_电动车性能分享网 | 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 宁波普瑞思邻苯二甲酸盐检测仪,ROHS2.0检测设备,ROHS2.0测试仪厂家 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 |