发布日期:2018-03-26
如何用PHP中生成一个随机密码+ 查看更多
如何用PHP中生成一个随机密码
+ 查看更多
发布日期:2018-03-26 14:17
分类:PHP
浏览次数:81
我试图在PHP中生成一个随机密码。但是我得到的全是字符a,密码返回的类型是个数组而我想要它是字符串类型。任何有关如何修改代码的想法都可以。
谢谢。
function randomPassword() { $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789"; for ($i = 0; $i < 8; $i++) { $n = rand(0, count($alphabet)-1); $pass[$i] = $alphabet[$n]; } return $pass; }
回答
安全警告:rand()不是加密安全的伪随机数生成器,到别处看PHP中生成加密安全的伪随机数字符串的方法。
尝试下面这段代码(使用strlen而不是count,因为一个字符串上的count总会是1):
function randomPassword() { $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'; $pass = array(); //remember to declare $pass as an array $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache for ($i = 0; $i < 8; $i++) { $n = rand(0, $alphaLength); $pass[] = $alphabet[$n]; } return implode($pass); //turn the array into a string }