PHP实现密码生成器包含大小写字母数字特殊字符

PHP实现密码生成器包含大小写字母数字特殊字符

大家好,又见面了,我是全栈君。

function createPassword($length = 16)
{
    $pwd = '';
    $num = 0;
    $str = "~!@#$%^&*_-+=`|\(){}[]:;\"'>,.?/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $count = strlen($str);
    while ((strlen($pwd) < $length) || $num < $length) {
        $rand = rand(0, $count);
        $sub = substr($str, $rand, 1);
        $pwd .= $sub;  //此处去除< 小于号,
        $num++;
        echo $pwd . '  自增值: ' . $num . '  随机字符位置: ' . $rand . '<br>';
    }
    return $pwd;
}

$createPwd = createPassword(32);
echo '密码: ' . $createPwd;
echo '<br>';
echo "密码长度: " . strlen($createPwd);
die;

效果图;

PHP实现密码生成器包含大小写字母数字特殊字符

但不知道为什莫,字符串中不能带< 小于号,有时间再研究下,有大佬知道的可以给指点指点.

解答:首先感谢大佬,在百忙之中,为小弟解惑

这个问题简单易懂,但是你不真实操作下,往往容易忽略掉

PHP实现密码生成器包含大小写字母数字特殊字符PHP实现密码生成器包含大小写字母数字特殊字符

PHP实现密码生成器包含大小写字母数字特殊字符

附上大佬给优化后的代码:

function createPassword($length = 16)
{
    $pwd = '';
    $num = 0;
    $str = "<~!@#$%^&*_-+=`|\(){}[]:;\"'>,.?/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $count = strlen($str);
    for($i = 0; $i < $length; $i++){
        $rand = rand(0, $count-1);
        $pwd .= $str[$rand];
        echo $pwd . '  自增值: ' . $num . '  随机字符位置: ' . $rand . '<br>';
    }
    return $pwd;
}

$createPwd = createPassword(32);
echo '密码: ' . $createPwd;
echo '<br>';
echo "密码长度: " . strlen($createPwd);
die;

所以,要求不高的情况下,可以把< 去掉,或者在命令行直接操作就好.

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111593.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月18日 上午11:00
下一篇 2022年2月18日 下午12:00


相关推荐

  • pycharm如何设置字体大小快捷键_ps字体放大缩小快捷键

    pycharm如何设置字体大小快捷键_ps字体放大缩小快捷键一、pycharm字体放大的设置File->setting->Keymap->在搜寻框中输入:increase->IncreaseFontSize(双击)->在弹出的对话框中选择AddMouseShortcut在弹出的对话框中同时按住ctrl键和鼠标滚轮向上滑,点击OK完成设置二、Pycharm字体缩小的设置File->setting->Keymap->在搜寻框中输入:decrease->Decre.

    2022年8月25日
    7
  • 人物关系图谱插件

    人物关系图谱插件<template><div><divstyle=”height:calc(100vh-50px);”><RelationGraphref=”seeksRelationGraph”:options=”graphOptions”:on-node-click=”onNodeClick”:on-line-click=”onLineClick”/></div>…

    2022年6月26日
    53
  • 对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)

    对PS2遥控手柄与stm32单片机通信的理解(结合平衡小车之家的说明和程序)为了更好地应用PS2遥控手柄,我想尽可能理解一下它与stm32单片机间通信控制的过程,首先看了平衡小车之家给的PS2遥控手柄使用说明,讲解的内容比较简洁,光凭这个说明不能很轻易地理解配套的程序逻辑,接下来结合平衡小车之家的程序内容对照说明解释一下我的理解。因是个人理解并非官方说明,如有误请帮助指出改正,非常感谢!一、自己看一遍说明在看程序之前要先看一下说明里的介绍,大致了解一下。说明及源码:…

    2022年5月2日
    50
  • java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看

    java图书馆新地址_值得你关注的16个顶级 Java 开源项目!小白必看1.JavaGuide把这个排第一没有个人因素影响哈!Guide哥我自己大三开始维护的,目前算是纯Java类型项目中Star数量最多的项目了。但是,本仓库的价值远远(+N次)比不上像SpringBoot、Elasticsearch等等这样非常非常非常优秀的项目。希望以后我也有能力为这些项目贡献一些有价值的代码。Github地址:https://github.com/Snailc…

    2022年7月7日
    48
  • strtoul函数的使用

    strtoul函数的使用函数原型:参数1:字符串起始地址参数2:返回字符串有效数字的结束地址,这也是为什么要用二级指针的原因。参数3:转换基数。当base=0,自动判断字符串的类型,并按10进制输出,例如"0xa

    2022年8月1日
    12
  • phpmyadmin安装教程及配置设置

    phpmyadmin安装教程及配置设置.一般网上下载到的phpmyadmin是一个压缩包,我们将其释放到htdocs目录中,例如htdocs\phpmyadmin。  2.打开phpmyadmin目录,在此目录下是否有config.sample.inc.php文件,如果存在,那么将其改名为config.inc.php。(根据版本不同,有可能直接就有config.inc.php文件,那就无需改名,也有可能根本就没有config.

    2022年6月1日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号