<?php
function genstr($num)
{
for ($i = 0; $i <= $num; $i++)
{
$str .= chr(mt_rand(97, 122));
}
return $str;
}
function geenstr($num) {
return substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), 0, $num);
}
echo genstr(6);
?>
20231111更新:
<?php
function isEveryCharInString($needle, $haystack) {
for ($i = 0; $i < strlen($needle); $i++) {
if (strpos($haystack, $needle[$i]) !== false) {
return true;
}
}
return false;
}
function readable_random_string($length = 14){
$consonants = array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");
$conscount = count($consonants) - 1;
$vowels = array("a","e","i","o","u");
$vowcount = count($vowels) - 1;
$password = '';
for($i = 1; $i <= $length; $i++) {
if ($i % 2 == 0) {
$password .= $vowels[random_int(0, $vowcount)];
} else {
$password .= $consonants[random_int(0, $conscount)];
}
}
return $password;
}
function generate_password($length = 14, $special = true, $extra_special = true) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$special_chars = '!@#$%^&*()';
$extra_special_chars = '-_[]{}<>~`+=,.;:/\?|';
//$extra_special_chars = '-_ []{}<>~`+=,.;:/?|';
if ($special) {
$chars .= $special_chars;
}
if ($extra_special) {
$chars .= $extra_special_chars;
}
while (true) {
$password = '';
for ($i = 1; $i <= $length; $i++) {
$password .= substr($chars, random_int(0, strlen($chars) - 1), 1);
}
if (($special && ! isEveryCharInString($password, $special_chars)) || ($extra_special && ! isEveryCharInString($password, $extra_special_chars))) {
continue;
}
return $password;
}
}
$length = 14;
echo readable_random_string($length).PHP_EOL;
echo generate_password($length, false, false).PHP_EOL;
echo generate_password($length, true, false).PHP_EOL;
echo generate_password($length).PHP_EOL;