我使用以下命令生成随机字符串:
$characters = '0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm';
$cl = strlen($characters) -1;
$id = '';
for ($p = 0; $p < $le; $p++) {N
$id .= $characters[mt_rand(0, $cl)];
}现在,如果我做str_shuffle($id),它会增加熵,也就是让字符串更随机吗?
发布于 2014-02-14 17:45:28
不是的。事实并非如此。
str_shuffle只是得到字符串的随机结果,所以它会给你另一个随机字符串,但不会更熵。
如果你正在寻找一个熵更大的字符串,你可以在$characters变量中添加特殊字符,或者得到比实际更大的$le。
发布于 2014-02-18 03:41:12
如果你想要密码熵,我可以推荐openssl_random_pseudo_bytes($length)或mcrypt_create_iv($length)吗?
对于自定义字符集,可以在base_convert()的PHP手册注释中查找binhex()和convBase()。
https://stackoverflow.com/questions/21775621
复制相似问题