5位随机数重复的概率 php_请教 PHP 高效生成简短唯一随机数方法

本文介绍了一个PHP函数genToken,用于生成指定长度的随机字符串,可用于创建唯一标识。函数通过混合不同的字符并使用mt_rand生成随机数,如果需要,还可以将结果通过MD5加密以缩短长度。
摘要由CSDN通过智能技术生成

12

2019-04-19 11:33:07 +08:00

```php

function genToken( $len = 32, $md5 = true ) {

# Seed random number generator

# Only needed for PHP versions prior to 4.2

mt_srand( (double)microtime()*1000000 );

# Array of characters, adjust as desired

$chars = array(

'Q', '@', '8', 'y', '%', '^', '5', 'Z', '(', 'G', '_', 'O', '`',

'S', '-', 'N', '

'/', '|', ':', '1', 'E', 'L', '4', '&', '6', '7', '#', '9', 'a',

'A', 'b', 'B', '~', 'C', 'd', '>', 'e', '2', 'f', 'P', 'g', ')',

'?', 'H', 'i', 'X', 'U', 'J', 'k', 'r', 'l', '3', 't', 'M', 'n',

'=', 'o', '+', 'p', 'F', 'q', '!', 'K', 'R', 's', 'c', 'm', 'T',

'v', 'j', 'u', 'V', 'w', ',', 'x', 'I', '$', 'Y', 'z', '*'

);

# Array indice friendly number of chars;

$numChars = count($chars) - 1; $token = '';

# Create random token at the specified length

for ( $i=0; $i

$token .= $chars[ mt_rand(0, $numChars) ];

# Should token be run through md5?

if ( $md5 ) {

# Number of 32 char chunks

$chunks = ceil( strlen($token) / 32 ); $md5token = '';

# Run each chunk through md5

for ( $i=1; $i<=$chunks; $i++ )

$md5token .= md5( substr($token, $i * 32 - 32, 32) );

# Trim the token

$token = substr($md5token, 0, $len);

} return $token;

}

```

最近在学 markdown,帮 10 楼整理下看看是啥效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值