PHP中快速生成隨機密碼的幾種方式
思路是這樣的,密碼通常是英文字母和數(shù)字的混合編排,我們可以借助隨機函數(shù)rand函數(shù)隨機的選擇一個長字符串的一部分。
function random_code($length = 8,$chars = null){ if(empty($chars)){ $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; } $count = strlen($chars) - 1; $code = ''; while( strlen($code) < $length){ $code .= substr($chars,rand(0,$count),1); } return $code; } echo random_code;//A1zYbN5X
我們使用rand函數(shù)的目的是為了產(chǎn)生隨機的字符串,但是如果有一個函數(shù)可以做到的話,我們就沒有必要使用rand函數(shù)了。
function random_char($length = 8,$chars = null){ if( empty($chars) ){ $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; } $chars = str_shuffle($chars); $num = $length < strlen($chars) - 1 ? $length:str_len($chars) - 1; return substr($chars,0,$num); }
可以看到不使用rand函數(shù),而是使用str_shuffle函數(shù),好處是大大減少了代碼量。
更近一部的,我們的函數(shù)不僅可以生成隨機的密碼,還可以生成短信驗證碼,以及高強度的服務(wù)器登錄密碼。
function random_code_type($length = 8,$type = 'alpha-number'){ $code_arr = array( 'alpha' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', 'number'=> '0123456789', 'sign' => '#$%@*-_', ); $type_arr = explode('-',$type); foreach($type_arr as $t){ if( ! array_key_exists($t,$code_arr)){ trigger_error("Can not generate type ($t) code"); } } $chars = ''; foreach($type_arr as $t){ $chars .= $code_arr[$t]; } $chars = str_shuffle($chars); $number = $length > strlen($chars) - 1 ? strlen($chars) - 1:$length; return substr($chars,0,$number); } echo random_code_type(8,"alpha-number-sign");#kXM*mC$S
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
TP3.2.3框架使用CKeditor編輯器在頁面中上傳圖片的方法分析
這篇文章主要介紹了TP3.2.3框架使用CKeditor編輯器在頁面中上傳圖片的方法,結(jié)合實例形式分析了thinkPHP3.2.3框架使用CKeditor編輯器相關(guān)配置方法與操作注意事項,需要的朋友可以參考下2019-12-12在Laravel中實現(xiàn)使用AJAX動態(tài)刷新部分頁面
今天小編就為大家分享一篇在Laravel中實現(xiàn)使用AJAX動態(tài)刷新部分頁面,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10Joomla調(diào)用系統(tǒng)自帶編輯器的實現(xiàn)方法
這篇文章主要介紹了Joomla調(diào)用系統(tǒng)自帶編輯器的實現(xiàn)方法,實例分析了Joomla調(diào)用系統(tǒng)自帶編輯器的具體步驟、相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下2016-05-05PHP header()函數(shù)使用詳細(301、404等錯誤設(shè)置)
用PHP header()函數(shù)實現(xiàn)頁面404錯誤提示功能,特整理了PHP header()函數(shù)的詳細使用分享給大家,需要大家多多支持我們2013-04-04laravel5.5框架的上傳圖片功能實例分析【僅傳到服務(wù)器端】
這篇文章主要介紹了laravel5.5框架的上傳圖片功能,結(jié)合實例形式分析了laravel5.5框架將圖片上傳到服務(wù)器端的相關(guān)操作技巧與注意事項,需要的朋友可以參考下2019-12-12