我正在try 在php中生成一个随机密码.

然而,我得到了所有的'a'和返回类型是数组类型,我希望它是一个字符串.关于如何更正代码有什么 idea 吗?

谢谢.

function randomPassword() {
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    for ($i = 0; $i < 8; $i++) {
        $n = rand(0, count($alphabet)-1);
        $pass[$i] = $alphabet[$n];
    }
    return $pass;
}

推荐答案

Security warning:rand()不是密码安全的伪随机数生成器.go 别处找generating a cryptographically secure pseudorandom string in 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
}

Demo

Php相关问答推荐

为什么这个方法调用用引号和花括号包裹?

PHP在将数组子集赋给变量时是否复制数组子集?

邮箱打开跟踪器不工作时发送邮件使用laravel调度程序

如何隐藏x轴图表上的值

WooCommerce数量减号和加号图标未显示

为什么正则表达式与得到的文本块之前得到的也行?

在Laravel中为表添加前缀,以将它们逻辑地分组

WooCommerce常规价格增加额外的附加平价

PHP根据特定索引值从中删除子数组

如何使用MS Graph PHP SDK V2下载文件

针对给定产品类别的WooCommerce计数审核

在Laravel中创建辅助函数时的约定

拉威尔10有许多通过获取所有祖父母数据的子元素S图像

添加不存在的订单元数据以扩展WooCommerce针对特定产品的管理订单搜索

WooCommerce产品页面上没有产品详细信息

在 Woocommerce 邮箱订单中显示产品 GTIN

通过添加计数器修改文本区域表单中的重复值

PHP 创建 CSV 文件并用波斯语写入

php-http/discovery 插件 1.15.1 是否仍在使用自己的模块 destruct Contao 4.13 中的composer 安装?

在 DomPDF 和 Laravel 中使用内联 css