If a user registers and generates a random password, the user also needs to generate a random password to reset their password. A random password is a string of fixed length. The following introduces three basic methods of generating random strings:
Method 1
1. Generate a random integer between 33 and 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 , the range can be adjusted as needed. 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; the chr (int $ascii) function is used to convert the corresponding integer $ascii into the corresponding character . function?create_password($pw_length?=?
{?
$randpwd?=?”;?
for?($i?=?0; ?$i?$pw_length;?$i++)?
{?
$randpwd?.=?chr(mt_rand(33,?126));? p>
}?
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. Password of length n. function?generate_password(?$length?=?8?)?{?
//?Password character set, you can add any characters you need?
$chars?=?'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_?[]{}<>~`+=,.;:/?|';?
$password ?=?”;?
for?(?$i?=?0;?$i?$length;?$i++?)?
{? p>
//?There are two ways to obtain characters here?
//?The first is to use?substr?to intercept any character in $chars;?
< p>//?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)?];?< /p>
}?
return?$password;?
}
Method 3
1. Preset one The character array $chars includes a – z, A – Z, 0 – 9, and some special characters.
2. Randomly select $length elements from the array $chars through array_rand().
3. According to the obtained key name array $keys, take out the characters from the array $chars and concatenate the string. The disadvantage of this method is that the same characters will not be retrieved repeatedly.
function?make_password(?$length?=?8?)?
{?
//?Password character set, you can add any characters you need?
< p>$chars?=?array('a',?'b',?'c',?'d',?'e',?'f',?'g',?'h',?< /p>'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',? '!',?
'@','#',?'$',?'%',?'^',?'&',?'*',?'(', ?')',?'-',?'_',?
'[',?']',?'{',?'}',?'<',?'> ',?'~',?'`',?'+',?'=',?',',?
'.',?';',?':',? '/',?'?',?'|');?
//?Randomly select?$length? array element key names in?$chars?
$keys?=?($chars,?$length);?
$password?=?”;?
for($i?=?0;?$i ?$length;?$i++)?
{?
//?Concatenate ?$length? array elements into a string?
$password?.=?$chars[$keys[$i]];?
}?
return?$password;?
} p>