台灣最大程式設計社群網站
線上人數
1561
 
會員總數:245468
討論主題:189226
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 亂數密碼產生範例 ( PHP )
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
亂數密碼產生範例 ( PHP )
價值 : 0 QP  點閱數:798 回應數:0

樓主

ST.one
初學者
163 7
228 37
發送站內信

捐贈 VP 給 ST.one
<?
/* 產生密碼 */

/* 亂數產生二十四碼位數 */
$code = substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);
$code = $code.substr("00".rand(1,50)+(39*rand(1,10000)+1),0,2);

/* 將二十四位數拆成二十四組,兩位數一組。 */
for($i=1;$i<=24;$i++){
$temp[$i]=substr("0".$code."0",$i,2);
}

/* 設定十二個變數,內容為上面拆出來的變數從中央合併後,再乘上一組一到一萬的亂數,除 36 取餘數(範圍是 0-35 )。 */
for($i=1;$i<=12;$i++){
$code_temp[$i]=intval($temp[$i].$temp[$i+1])%60;
}

/* 宣告密碼 */
$password = "";

/* 組合密碼 */
for($i=1;$i<=12;$i++){
if($code_temp[$i]<10){
$code_temp[$i]=$code_temp[$i]+48;
} elseif($code_temp[$i]<34) {
$code_temp[$i]=$code_temp[$i]+55;
} else {
$code_temp[$i]=$code_temp[$i]+63;
}
$password=$password.chr($code_temp[$i]);
}
?>

Password = <? echo $password; ?><BR>
Password(md5) = <? echo md5($password); ?><BR>


<?
/* 運算驗證碼 */

/* 將 Password 拆成十二組,兩位數一組。 */
for($i=1;$i<=12;$i++){
$password_temp[$i]=substr($password,$i,1);
}

/* 亂數產生二十四碼位數 */
for($i=1;$i<=24;$i++){
$encode = $encode.substr(39*$password_temp[$i]+$i,0,2);
}

/* 將二十四位數拆成二十四組,兩位數一組。 */
for($i=1;$i<=24;$i++){
$password_temp[$i]=substr($encode,$i,2);
}

/* 設定十二個變數,內容為上面拆出來的變數從中央合併後,再乘上一組一到一萬的亂數,除 36 取餘數(範圍是 0-35 )。 */
for($i=1;$i<=12;$i++){
$encode_temp[$i]=intval($password_temp[$i].$password_temp[$i+1])%60;
}

/* 宣告驗證碼 */
$encode = "";

/* 組合驗證碼 */
for($i=1;$i<=12;$i++){
if($encode_temp[$i]<10){
$encode_temp[$i]=$encode_temp[$i]+48;
} elseif($encode_temp[$i]<34) {
$encode_temp[$i]=$encode_temp[$i]+55;
} else {
$encode_temp[$i]=$encode_temp[$i]+63;
}
$encode=$encode.chr($encode_temp[$i]);
}
?>
Encode = <? echo $encode; ?><BR>
Encode(md5) = <? echo md5($encode); ?><BR>

搜尋相關Tags的文章: [ 亂數 ] , [ 密碼 ] , [ 範例 ] ,
本篇文章發表於2006-03-15 02:48
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.