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


相关推荐

  • 恐怖的vs2005 sp1安装过程.

    恐怖的vs2005 sp1安装过程.今天刚把这个400多M的sp1从公司拷回来,算计着这样可以省掉不少下载时间.可是,可是,竟然没有想到,安装过程是如此的恐怖.首先,我的C盘空间明显的感到害羞,只有1.5G的剩余空间了,赶

    2022年7月3日
    22
  • 返回跳转指定页面的JS代码_页面跳转

    返回跳转指定页面的JS代码_页面跳转JS跳转页面参考代码第一种:    window.location.href=”login.jsp?backurl=”+window.location.href;第二种:    alert(“返回”);window.history.back(-1);   第三种:   window.navigate(“top.jsp”);  

    2022年8月13日
    6
  • 什么是语义分割_多模态语义理解

    什么是语义分割_多模态语义理解原文地址:SegNet复现详解:http://mi.eng.cam.ac.uk/projects/segnet/tutorial.html 实现代码:    github                       TensorFlow简介:        SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架。SegNet基于FCN…

    2022年8月21日
    5
  • Typora——MarkDown学习笔记

    Typora——MarkDown学习笔记一级标题:# 文字二级标题:## 文字三级标题:### 文字字体粗体:文字两边加**斜体:文字两边加*斜体并加粗:文字两边加***删除文字:两边加~~引用:>+空格分割线:— 或者***图片:![截图](图片路径)超链接:点击跳转排序:排序号:1. 2. 3.无序:·回车表格名字性别生日张三男19990513代码:skdsldl…

    2022年8月8日
    7
  • 本地Mysql忘记密码的修改方法(windows)

    本地Mysql忘记密码的修改方法(windows)你是否有忘记密码的尴尬你是否有连Mysql的安装路径都忘了的尴尬别问我是怎么知道的,哈哈哈话不多说,步入正题吧!如果你记得mysql的安装路径的话,直接跳过步骤1231.键盘Windows+R,输入services.msc然后回车;2.找到Mysql,右键Mysql找到属性,打开就能看到可执行文件的路径了;PS:可以切换到大写,然后一直按MMM…(祖传妙方)3.进入bin目录下,按住shift+鼠标右键,点击打开“在此处打开Powershe.

    2022年6月16日
    39
  • xcode自动签名_配置实用工具也不能移除

    xcode自动签名_配置实用工具也不能移除之前看到过一篇无证做真机测试的文章,很受用~不过因为当时手贱,把默认的“iPhoneDeveloper”签名改成了自己的名字直接导致后来的每一个XCode项目,我想在真机上面看效果都要重新设置签名配置。当然,是可以按照那篇文章把这个名字再修改回来,不过我当时懒,就一直这么弄着了如今经过了那么长的时间,我电脑里面存储的很多工程都沿用了这蛋疼的配置所以一时半会儿

    2022年9月27日
    5

发表回复

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

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