生成隨機密碼方法有很多種,最簡單的就是使用php mt_rand()函數來直接生成一串數字了,下面我來給大家介紹php生成隨機密碼程序
最簡單的辦法mt_rand函數
mt_rand() 使用 Mersenne Twister 算法返回隨機整數。
例子
在本例中,我們會返回一些隨機數:
代碼如下 復制代碼<?php
echo(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>
輸出類似:
3150906288
513289678
35
上面相對來說安全指數很低的,因為全是數字哦,下面另名一種
1、預置一個的字符串 $chars ,包括 a – z,A – Z,0 – 9,以及一些特殊字符
2、在 $chars 字符串中隨機取一個字符
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;
}
一個朋友提供的md5()函數的返回值的緣故,生成的密碼只包括字母和數字,不過也算是一個不錯的方法。算法思想:
1、time() 獲取當前的 Unix 時間戳
2、將第一步獲取的時間戳進行 md5() 加密
3、將第二步加密的結果,截取 n 位即得想要的密碼
function get_password( $length = 8 )
{
$str = substr(md5(time()), 0, 6);
return $str;
}