Home >Backend Development >PHP Tutorial >Several random password generation methods_PHP tutorial

Several random password generation methods_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:10:201559browse

Random passwords are very simple, but there are many ways to follow them. They are all composed of special strings. Let’s take a look at the following three methods.

Method 1:

1. Generate a random integer from 33 – 126, such as 35,

2. Convert 35 into the corresponding ASCII code character, such as 35 corresponding to #

3. Repeat the above steps 1 and 2 n times to connect into an n-digit password

This algorithm mainly uses two functions. The mt_rand (int $min, int $max) function is used to generate random integers, where $min – $max is the range of ASCII codes. Here it is 33-126, which can be used as needed. Adjustment range, for example, 97 – 122 bits in the ASCII code table correspond to the English letters a – z. For details, please refer to the ASCII code table; chr (int $ascii) function is used to convert the corresponding integer $ascii into the corresponding character.

The code is as follows Copy code
 代码如下 复制代码

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

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

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

// Call this function and pass the length parameter $pw_length = 6
echo create_password(6);

Method 2:

1. Preset a string $chars, including a – z, A – Z, 0 – 9, and some special characters

2. Randomly pick a character from the $chars string

3. Repeat the second step n times to get a password of length 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;
}

<🎜> <🎜>
The code is as follows Copy code
<🎜>function generate_password( $length = 8 ) {
// Password character set, you can add any characters you need
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|'; $password = '';
for ( $i = 0; $i < $length; $i++ )
{
//There are two ways to obtain characters
// The first is to use substr to intercept any character in $chars;
//The second method is to take any element of the character array $chars
// $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
$password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}<🎜> <🎜> return $password;
}<🎜> <🎜> <🎜>

Using PHP to develop applications, especially website programs, often requires generating random passwords. For example, a random password is generated for user registration, and a random password is also required for user reset password. A random password is a string of fixed length. Here I have collected several methods of generating random strings for your reference.

Method 1:

1. Generate a random integer from 33 – 126, such as 35,

2. Convert 35 into the corresponding ASCII code character, such as 35 corresponding to #

3. Repeat the above steps 1 and 2 n times to connect into an n-digit password

This algorithm mainly uses two functions. The mt_rand (int $min, int $max) function is used to generate random integers, where $min – $max is the range of ASCII codes. Here it is 33-126, which can be used as needed. Adjustment range, for example, 97 – 122 bits in the ASCII code table correspond to the English letters a – z. For details, please refer to the ASCII code table; chr (int $ascii) function is used to convert the corresponding integer $ascii into the corresponding character.

1. Preset a string $chars, including a – z, A – Z, 0 – 9, and some special characters
The code is as follows
代码如下 复制代码

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

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

Copy code

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

// Call this function and pass the length parameter $pw_length = 6
echo create_password(6);

Method 2:
代码如下 复制代码

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;
}

2. Randomly pick a character from the $chars string

3. Repeat the second step n times to get a password of length n

The code is as follows Copy code
function generate_password( $length = 8 ) {
// Password character set, you can add any characters you need
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_ []{}<>~`+=,.;:/?|'; $password = '';
for ( $i = 0; $i < $length; $i++ )
{
//There are two ways to obtain characters
// The first is to use substr to intercept any character in $chars;
//The second method is to take any element of the character array $chars
// $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
$password .= $chars[ mt_rand(0, strlen($chars) - 1) ];
} return $password;
}

http://www.bkjia.com/PHPjc/629672.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/629672.htmlTechArticleRandom passwords are very simple, but there are many places to follow. They are all composed of some special strings. Below we Let’s take a look at the following three methods. Method 1: 1. Generate a... in 33 126
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn