带有一个数字和一个字母的php随机字符串

带有一个数字和一个字母的php随机字符串,php,Php,我有这个生成随机字符串的函数。这是可行的,但我需要生成一个数字和一个字母,总是随机字符串 function random() { $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789!@#$%^&*()_+=-"; $pass = array(); //remember to declare $pass as an array $alphaLength = strlen(

我有这个生成随机字符串的函数。这是可行的,但我需要生成一个数字和一个字母,总是随机字符串

function random() {
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789!@#$%^&*()_+=-";
    $pass = array(); //remember to declare $pass as an array
    $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
    for ($i = 0; $i < 8; $i++) {
        $n = rand(0, $alphaLength);
        $pass[] = $alphabet[$n];
    }
    return implode($pass); //turn the array into a string
}
函数随机(){
$alphabet=“abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwz012456789!@$%^&*()uu+=-”;
$pass=array();//记住将$pass声明为数组
$alphaLength=strlen($alphabet)-1;//将长度-1放入缓存
对于($i=0;$i<8;$i++){
$n=兰特(0,$alphaLength);
$pass[]=$alphabet[$n];
}
return introde($pass);//将数组转换为字符串
}

如何编辑我的代码并生成一个随机字符串中的数字和字母。

这将起作用,但请记住,生成密码是一种可怕的方法

function random() {
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789!@#$%^&*()_+=-";
    $pass = array(); //remember to declare $pass as an array
    $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
    for ($i = 0; $i < 8; $i++) {
        $n = rand(0, $alphaLength);
        $pass[] = $alphabet[$n];
    }
    return implode($pass); //turn the array into a string
}
function random() {
  $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789!@#$%^&*()_+=-";
  $pass = array(); //remember to declare $pass as an array
  $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
  $pass[] = $alphabet[rand(0, 49)]; // Grab a random letter.
  $pass[] = $alphabet[rand(50, 59)]; // Grab a random number.
  for ($i = 0; $i < 6; $i++) {
      $n = rand(0, $alphaLength);
      $pass[] = $alphabet[$n];
  }
  shuffle($pass);
  return implode($pass); //turn the array into a string
}
函数随机(){
$alphabet=“abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwz012456789!@$%^&*()uu+=-”;
$pass=array();//记住将$pass声明为数组
$alphaLength=strlen($alphabet)-1;//将长度-1放入缓存
$pass[]=$alphabet[rand(0,49)];//随机抽取一个字母。
$pass[]=$alphabet[rand(50,59)];//获取一个随机数。
对于($i=0;$i<6;$i++){
$n=兰特(0,$alphaLength);
$pass[]=$alphabet[$n];
}
洗牌($pass);
return introde($pass);//将数组转换为字符串
}
这里有一个稍微好一点的版本,它使用了一些真实的伪熵

function random() {
  srand(time());
  mt_srand(rand());
  srand(mt_rand());
  // You might also want to use openssl_random_pseudo_bytes() if available and
  // not on a Windows w/PHP < 5.3 host.
  // On Linux, think about including from /dev/urandom.
  $entropy = str_split(hash('sha256', uniqid('awesomesalt', TRUE) . mcrypt_create_iv(64) . microtime() . rand() . mt_rand(), TRUE));
  $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789!@#$%^&*()_+=-";
  $pass = array(); //remember to declare $pass as an array
  $alphaLength = strlen($alphabet); //put the length in cache
  $rand = floor(ord(array_pop($entropy)) * 50 / 255.1);
  $pass[] = $alphabet[0 + $rand]; // Grab a random letter.
  $rand = floor(ord(array_pop($entropy)) * 10 / 255.1);
  $pass[] = $alphabet[50 + $rand]; // Grab a random number.
  for ($i = 0; $i < 6; $i++) {
      $rand = floor(ord(array_pop($entropy)) * $alphaLength / 255.1);
      $pass[] = $alphabet[$rand];
  }
  shuffle($pass);
  return implode($pass); //turn the array into a string
}
函数随机(){
srand(time());
穆斯兰德(兰德());
srand(mt_rand());
//您可能还希望使用openssl_random_pseudo_bytes(),如果可用,并且
//不在Windows w/PHP<5.3主机上。
//在Linux上,考虑从/dev/uradom中包含。
$entropy=str_split(hash('sha256',uniqid('awesomesalt',TRUE.).mcrypt_create_iv(64).microtime().rand().mt_rand(),TRUE));
$alphabet=“abcdefghijklmnopqrstuwxyzabcdefghijklmnopqrstuwz012456789!@$%^&*()uu+=-”;
$pass=array();//记住将$pass声明为数组
$alphaLength=strlen($alphabet);//将长度放入缓存
$rand=地板(ord(数组_pop($entropy))*50/255.1);
$pass[]=$alphabet[0+$rand];//随机抽取一个字母。
$rand=地板(ord(数组_pop($entropy))*10/255.1);
$pass[]=$alphabet[50+$rand];//获取一个随机数。
对于($i=0;$i<6;$i++){
$rand=地板(ord(数组_pop($entropy))*$alphaLength/255.1);
$pass[]=$alphabet[$rand];
}
洗牌($pass);
return introde($pass);//将数组转换为字符串
}

您需要此随机字符串的具体原因是什么?您可以使用PHP的
uniqid(“”)
函数。我不太确定您想要生成什么,示例输出是什么?如果您担心生成高质量的密码,只需确保始终存在数字或字母将无法修复此函数。rand()没有值得一提的熵。@JayDansand:是的,我需要生成一个高质量的密码+随机字符串。请将rand()限制为数字在字符串中的显示位置,或者使用一个单独的字符串,其中只包含数字。