在PHP中生成随机代码?

问题描述 投票:2回答:7

我知道这可能看起来很傻,但我想生成一个8个字符的随机代码,只使用php的数字或字母。我需要这个为每个注册的用户生成一个密码,谢谢

php random
7个回答
14
投票

我宁愿使用md5来生成密码

但是如果你想要一个自定义,你可以使用这样的东西:

function createRandomPassword() { 

    $chars = "abcdefghijkmnopqrstuvwxyz023456789"; 
    srand((double)microtime()*1000000); 
    $i = 0; 
    $pass = '' ; 

    while ($i <= 7) { 
        $num = rand() % 33; 
        $tmp = substr($chars, $num, 1); 
        $pass = $pass . $tmp; 
        $i++; 
    } 

    return $pass; 

} 

7
投票

为了方便起见,这样的事情怎么样:

$pass = substr(md5(uniqid(mt_rand(), true)) , 0, 8);

3
投票
<?php 

$uniqid = uniqid();

$rand_start = rand(1,5);

$rand_8_char = substr($uniqid,$rand_start,8);

?>

2
投票

一个好的或有效的方法是:

public function generateRandomString($length = 8) {
    $characters = '0123456789abcdefghijklmnopqrs092u3tuvwxyzaskdhfhf9882323ABCDEFGHIJKLMNksadf9044OPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

通过更改$ length变量,您可以根据需要生成字母数字代码。


1
投票

使用base64_encode(),喂它一些rand()数字,并切断前8个字符,这绝对是字母或数字。由于输入只是整数,因此这不是一个完全随机的组合。但它对于默认用户密码来说已经足够了。 (在编码之前,请通过rand()使用chr()。)


1
投票

PHP有一个rand函数(以及文档声称更快的mt_rand函数。)

所以做这样的事情:

$i = 0;
$pwd = "";
while ( $i < 10) {
    if (mt_rand() % 2 == 0) {
        $pwd .= rand();
    } else {
        $pwd .= char(rand());
        // http://php.net/manual/en/function.chr.php
    }
    $i += 1;
}

0
投票

你可以用这个,

function rand_code($len)
{
 $min_lenght= 0;
 $max_lenght = 100;
 $bigL = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 $smallL = "abcdefghijklmnopqrstuvwxyz";
 $number = "0123456789";
 $bigB = str_shuffle($bigL);
 $smallS = str_shuffle($smallL);
 $numberS = str_shuffle($number);
 $subA = substr($bigB,0,5);
 $subB = substr($bigB,6,5);
 $subC = substr($bigB,10,5);
 $subD = substr($smallS,0,5);
 $subE = substr($smallS,6,5);
 $subF = substr($smallS,10,5);
 $subG = substr($numberS,0,5);
 $subH = substr($numberS,6,5);
 $subI = substr($numberS,10,5);
 $RandCode1 = str_shuffle($subA.$subD.$subB.$subF.$subC.$subE);
 $RandCode2 = str_shuffle($RandCode1);
 $RandCode = $RandCode1.$RandCode2;
 if ($len>$min_lenght && $len<$max_lenght)
 {
 $CodeEX = substr($RandCode,0,$len);
 }
 else
 {
 $CodeEX = $RandCode;
 }
 return $CodeEX;
}

详情Random code generator in PHP

© www.soinside.com 2019 - 2024. All rights reserved.