随机字符串:php str_shuffle添加熵

时间:2014-02-14 09:35:39

标签: php random

我正在生成随机字符串:

 $characters = '0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm';  
$cl = strlen($characters) -1;
$id = '';
for ($p = 0; $p < $le; $p++) {N
    $id .= $characters[mt_rand(0, $cl)];
}

现在,如果我str_shuffle($id),它会添加熵,即使字符串更随机吗?

2 个答案:

答案 0 :(得分:1)

没有。它没有。

str_shuffle只是得到你的字符串的随机结果,所以它会给你另一个随机字符串,但不会更多熵。

如果您正在寻找更多的熵字符串,您可以在$ characters变量中添加特殊字符,或者获得比实际更大的$ le。

答案 1 :(得分:1)

如果你想要密码熵,我可以建议openssl_random_pseudo_bytes($ length)或mcrypt_create_iv($ length)?

对于自定义字符集,查找binhex()和convBase(),它应该在base_convert()的PHP手册注释中