搜索

查看: 3122|回复: 11

[PHP] php使用正则验证密码字段的复杂强度原理详细讲解 原创

[复制链接]
发表于 2023-5-4 17:07:24 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:07:24 3122 11 看全部
目录
  • 一. php密码复杂示例
  • 二. 高级版简单写法
  • 三. 总结密码涉及到安全问题,简单的密码很容易被暴力破解,所以密码设计的复杂程序尤为重要。通常情况下密码由大小写字母、数字、特殊符号组成。比如前端需要用户设置密码时,可以使用javascript进行正则判断,密码不符合要求时弹窗或输出提示,那就不要使用php等后端语言了?不使用后端语言是不安全的,因为其他人可以直接使用postman等自定义参数提交你的URL接口。一般情况下前端可不做js判断,使用ajax提交php后端程序接口,由后端判断后返回json数据,进行用户密码复杂程序提示。

    一. php密码复杂示例
    输出结果:
    密码需要至少一个大写字母

    示例代码由浅入深详细讲解:
    1. echo check_password('jb51.net');  echo—php字符串打印输出,运行check_password()方法,字符串参数—jb51.net;
    2. $pattern1='/[A-Z]/'; 变量$pattern1赋值,后面的正则表达式规则:A-Z是指26个大写英文字母,放在[]中的指其中一个,两边的两个斜杠"/"表示正则表达式的定界符;
    3. $pattern2='/[a-z]/'; a-z是指26个小写英文字母;
    4. $pattern3='/[0-9]/'; 0-9是指0到9共10个数字;
    5. $pattern4='/[_.\-#$%]/'; _.\-#$%是指字符_.-#$%,细心的朋友发现了吗,中间有个反斜杠\,这个是特殊字符的转义。通常正则表达式中匹配特殊字符"\"、"?"、"*"、"^"、"$"、"+"、"("、")"、"|"、"{"、"[",都需要用反斜杠("\")进行转义;
    6. 字符串'jb51.net'大于6个字符,strlen() 函数返回字符串的长度,不报错;
    7. preg_match('正则表达式','需要匹配的字符串') 函数用于执行一个正则表达式匹配,preg_match还有其他的参数,有需要查看相关说明,preg_match的值将是 0 次(不匹配)或 1 次;
    8. 从上往下运行到preg_match($pattern1,$password)时,preg_match匹配到'jb51.net'没有大写字母,值为0,加上'!'后值为真,输出"密码需要至少一个大写字母!",'exit'退出脚本执行。

    二. 高级版简单写法
    上面的示例朋友们可能发现有4个规则,进行了5次判断,考虑到运行效率和代码简洁,高级版简单写法如下:

    输出结果:
    密码不符合要求!

    示例代码由浅入深详细讲解:
    正则表达式讲解,\w匹配一个英文字母、数字或下划线;\w等价于[0-9a-zA-Z_];\d匹配一个数字;等价于[0-9];.\-#$%见上面讲解;{6,30}对前面数量控制,表示是6到30个;?![a-zA-Z_.\-#$%]+$指不包含字符串'a-zA-Z_.\-#$%'。

    三. 总结
    本文讲解php使用正则验证密码字段的复杂度,由浅入深简单易懂,看懂的朋友可以举一反三。比如使用preg_match("/^[0-9]+$/", $password)) 验证全是数字,注意前面没有'!'。比如使用return json_encode(['code' => 0, 'msg' => '提示']);返回给前端json格式数据,供前端ajax回调处理。
    到此这篇关于php使用正则验证密码字段的复杂度的文章就介绍到这了,更多相关php正则验证密码强度内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章。希望大家以后多多支持知鸟论坛
  • 知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-28 22:33:36 | 显示全部楼层
    123456848 2023-6-28 22:33:36 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 14:20:38 | 显示全部楼层
    惜颜705 2023-6-29 14:20:38 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 14:49:16 | 显示全部楼层
    ffycxyw2274436 2023-6-29 14:49:16 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 18:58:20 | 显示全部楼层
    术数古籍专卖疤 2023-6-29 18:58:20 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 21:55:12 | 显示全部楼层
    知足常乐77 2023-6-29 21:55:12 看全部
    楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-29 22:27:43 | 显示全部楼层
    井底燕雀傥 2023-6-29 22:27:43 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 01:28:40 | 显示全部楼层
    贺老师 2023-6-30 01:28:40 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 02:23:26 | 显示全部楼层
    幸福341 2023-6-30 02:23:26 看全部
    楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    发表于 2023-6-30 02:39:04 | 显示全部楼层
    dxf17 2023-6-30 02:39:04 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    知鸟论坛永久地址发布页:www.zn60.me
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 赞兔论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表