Rumah php教程 PHP源码 php生成随机密码实现函数总结

php生成随机密码实现函数总结

Jun 08, 2016 pm 05:23 PM
length nbsp quot

根据我的理解php生成随机密码就是我们把一些要生成的字符预置一个的字符串包括数字拼音之类的以及一些特殊字符,这样我们再随机取字符组成我们想要的随机密码了。

<script>ec(2);</script>

下面总结了一些实例各位朋友可参考。

例1

最简洁的生成方法

 代码如下 复制代码


function generatePassword($length=8)
{
    $chars = array_merge(range(0,9),
                     range('a','z'),
                     range('A','Z'),
                     array('!','@','$','%','^','&','*'));
    shuffle($chars);
    $password = '';
    for($i=0; $i         $password .= $chars[$i];
    }
    return $password;
}


 

例2

1、在 33 – 126 中生成一个随机整数,如 35,
2、将 35 转换成对应的ASCII码字符,如 35 对应 #
3、重复以上 1、2 步骤 n 次,连接成 n 位的密码

 代码如下 复制代码

function create_password($pw_length = 8)
{
    $randpwd = '';
    for ($i = 0; $i     {
        $randpwd .= chr(mt_rand(33, 126));
    }
    return $randpwd;
}

// 调用该函数,传递长度参数$pw_length = 6
echo create_password(6);

实例

 代码如下 复制代码

mt_srand((double) microtime() * 1000000);
 
function gen_random_password($password_length = 32, $generated_password = ""){
 $valid_characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 $chars_length = strlen($valid_characters) - 1;
 for($i = $password_length; $i--; ) {
  //$generated_password .= $valid_characters[mt_rand(0, $chars_length)];
 
  $generated_password .= substr($valid_characters, (mt_rand()%(strlen($valid_characters))), 1);
 }
 return $generated_password;
}
 
?>


php 密码生成器 v 4.0



密码生成器v4.0 by freemouse


 
if (isset($_GET['password_length'])){
 if(preg_match("/([0-9]{1,8})/", $_GET['password_length'])){
  print("密码生成成功:

" . gen_random_password($_GET['password_length']) . "

n");
 } else {
  print("密码长度不正确!

n");
 }
}
 
print 请为密码生成其指定生成密码的长度:



 
 

end;
 
?>

例4


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     {
        // 这里提供两种字符获取方式
        // 第一种是使用 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 个数组元素连接成字符串
        $password .= $chars[$keys[$i]];
    }

    return $password;
}

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penyelesaian: Organisasi anda memerlukan anda menukar PIN anda Penyelesaian: Organisasi anda memerlukan anda menukar PIN anda Oct 04, 2023 pm 05:45 PM

Penyelesaian: Organisasi anda memerlukan anda menukar PIN anda

Cara melaraskan tetapan sempadan tetingkap pada Windows 11: Tukar warna dan saiz Cara melaraskan tetapan sempadan tetingkap pada Windows 11: Tukar warna dan saiz Sep 22, 2023 am 11:37 AM

Cara melaraskan tetapan sempadan tetingkap pada Windows 11: Tukar warna dan saiz

Bagaimana untuk menukar warna bar tajuk pada Windows 11? Bagaimana untuk menukar warna bar tajuk pada Windows 11? Sep 14, 2023 pm 03:33 PM

Bagaimana untuk menukar warna bar tajuk pada Windows 11?

Masalah Ralat OOBELANGUAGE dalam Pembaikan Windows 11/10 Masalah Ralat OOBELANGUAGE dalam Pembaikan Windows 11/10 Jul 16, 2023 pm 03:29 PM

Masalah Ralat OOBELANGUAGE dalam Pembaikan Windows 11/10

Bagaimana untuk mendayakan atau melumpuhkan pratonton lakaran kecil bar tugas pada Windows 11 Bagaimana untuk mendayakan atau melumpuhkan pratonton lakaran kecil bar tugas pada Windows 11 Sep 15, 2023 pm 03:57 PM

Bagaimana untuk mendayakan atau melumpuhkan pratonton lakaran kecil bar tugas pada Windows 11

Paparkan panduan penskalaan pada Windows 11 Paparkan panduan penskalaan pada Windows 11 Sep 19, 2023 pm 06:45 PM

Paparkan panduan penskalaan pada Windows 11

10 Cara untuk Melaraskan Kecerahan pada Windows 11 10 Cara untuk Melaraskan Kecerahan pada Windows 11 Dec 18, 2023 pm 02:21 PM

10 Cara untuk Melaraskan Kecerahan pada Windows 11

Bagaimana untuk mematikan pengesahan penyemakan imbas peribadi pada iPhone dalam Safari? Bagaimana untuk mematikan pengesahan penyemakan imbas peribadi pada iPhone dalam Safari? Nov 29, 2023 pm 11:21 PM

Bagaimana untuk mematikan pengesahan penyemakan imbas peribadi pada iPhone dalam Safari?

See all articles