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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis返回值_存储过程获取查询结果

    mybatis返回值_存储过程获取查询结果com.jerry.mapper.TestMapper.javapackagecom.jerry.mapper;importjava.util.List;importjava.util.Map;publicinterfaceTestMapper{ /** *查寻单个结果直接返回Map&amp;amp;amp;lt;String,Object&amp;amp;amp;gt; *@paramid *…………..

    2022年10月4日
    3
  • 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

    详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)  2020年的10月份,我整理写了一篇名为:详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!的博客,已经经过了很多小伙伴的验证,确实是可行的,该篇博客链接如下:【请点击此处进行跳转】  经过近期的探索,我将安装步骤进行了进一步的优化,使安装变得更加快速,更加简单,我已经验证了其可行性,期待更多的小伙伴们一起来验证  本次安装依旧采用在虚拟机中安装的模式,一年前我用的VMware15.5,现在用的VMware16.1.1,【获取方式(附安装步

    2022年6月15日
    41
  • 智能避障小车_单片机智能小车程序

    智能避障小车_单片机智能小车程序      接下来我对所用的模块以及小车的硬件部分做一个讲解        小车的总体效果图如下:      首先是模块简介:            1、首先就是L298N,这是一个经典的电机驱动,相信基本所有玩过单片机,玩过电机的人都使用过,它可以最高容忍15v电压输入,逻辑电平2.4-5.5v,所以使用单片机的3.3v完全可以驱动,它并没有PWM接口来控制电机的速度,只能使逻辑电平输出…

    2022年10月17日
    2
  • linux内核版本介绍_如何查看linux内核

    linux内核版本介绍_如何查看linux内核在下水平相当有限,不当之处,还望大家批评指正^_^1.标准内核版本信息看下图(截自https://www.kernel.org/)第一列,版本性质:主分支(mainline),稳定版(stable),长期维护版(longterm)第二列,版本号。-rc表示非正式发布版本,[EOL]表示本分支最后一个版本。第三列,版本发布日期。patch列是补丁。用于从本分支

    2022年8月23日
    5
  • 汇编语言期末复习不挂科——知识点总结

    汇编语言期末考试复习详细资料,赶快收藏。

    2022年4月16日
    62
  • 智能化让商业地产迎来新一轮黄金期

    智能化让商业地产迎来新一轮黄金期

    2021年6月5日
    98

发表回复

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

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