我正在生成随机字符串:
$characters = '0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm';
$cl = strlen($characters) -1;
$id = '';
for ($p = 0; $p < $le; $p++) {N
$id .= $characters[mt_rand(0, $cl)];
}
现在,如果我str_shuffle($id)
,它会添加熵,即使字符串更随机吗?
答案 0 :(得分:1)
没有。它没有。
str_shuffle只是得到你的字符串的随机结果,所以它会给你另一个随机字符串,但不会更多熵。
如果您正在寻找更多的熵字符串,您可以在$ characters变量中添加特殊字符,或者获得比实际更大的$ le。
答案 1 :(得分:1)
如果你想要密码熵,我可以建议openssl_random_pseudo_bytes($ length)或mcrypt_create_iv($ length)?
对于自定义字符集,查找binhex()和convBase(),它应该在base_convert()的PHP手册注释中