如何判断用户的密码是否为强密码?

news2024/12/28 5:30:47

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

用户设置的密码弱,会导致信息安全问题,一般的系统都要求设置强密码。今天的文章给大家介绍如何通过一个正则表达式来判断用户的密码是否为强密码。

1、介绍一下开发中使用正则表达式的流程:

1、分析所要匹配的数据特点,模拟各种测试数据;

2、利用正则工具,写正则表达式与测试数据进行匹配,从而验证你写的正则;

3、在程序里调用在正则工具中验证通过的正则表达式。

2、Java中如何使用正则

Java中正则相关类位于java.util.regex包下,主要使用2个类,如下:

378a4bd16b2a7e005c4773c43b71fd92.png

Pattern类:

Pattern是正则表达式regex的编译表示形式

daeb4c80f428a00ddc1114ab166ed309.png

Matcher类:

通过解释Pattern对输入的字符串input执行匹配操作的引擎

3f4acc750177523a7adbd5224d93849f.png

注意:在Java代码中转义字符“\”要写成“\\”才表示一个“\”。

比如regex=\d,在Java代码中应该写成“\\d”。

3、下面是京东注册页面的截图:以京东注册为例,京东建议使用字母、数字和符号两种及以上的组合,6-20个字符。

9cbbb2be4d488fa3a0939b17f5b7ae80.png

下面我们通过正则表达式来完成用户输入的密码是否符合密码规则的校验。

首先分析密码要求,如下:

1、密码包括字母、数字和符号3种字符

2、必须包含2种及以上的字符

3、密码长度6-20位

字母包括:A-Za-z,数字包括:0-9

符号包括32个:`-=\][';/.,~!@#$%^&*()_+|}{":?>< 

需要注意的是如果使用32个符号,特殊字符“\”、“[、“]是需要进行转义的,为了简单直观,我们假设符号只有@#$3个。

进一步分析,密码只有字母,数字,符号3种类型的字符,要求必须包含2种及以上,那么密码组合的种类有4种(3个里面选2个+3个全选=4),即:

字母+数字,字母+符号,数字+符号,字母+数字+符号。

如果从正面去考虑这个问题,那么正则会很难写,所以我们从反面考虑:“必须包含2种及以上”的反面就是“只包含1种”,也就是说密码要求“不能只包含1种字符

密码长度6-20位,需要用到开始标记“^”和结束标记“$”,量词{6,20}

最终分析密码要求是:

密码从开始到结束必须6-20位而且不能全部是1种单一的字符

因此正则可以这么写:

regex=^(?![A-Za-z]+$)(?![0-9]+$)(?![@#$]+$)[A-Za-z0-9@#$]{6,20}$

解释:

^(?![A-Za-z]+$)表示从头到尾不能全是字母

^(?![0-9]+$)表示从头到尾不能全是数字

^(?![@#$]+$)表示从头到尾不能全是符号@#$

^[A-Za-z0-9@#$]{6,20}$表示从头到尾只能是字母数字符号@#$的集合

需要注意的是,开始符“^”和预搜索“(?!)”都是零宽的,表示位置,所以开始符“^”只需要在整个正则表达式的开始处写一个即可。

如果这里看不懂的话,请看《一篇文章学会正则表达式的语法》的相关内容。

最后我们把分析到的表达式代入到Java代码完成功能。注意在Java中,反斜杠需要转义,即一杠变二杠。

efb079594cdd10e77ed2172ab7d05c28.png

最终结果如下:

c2581aaa5126c2027fe9d0cefa587f43.png

至此,正则表达式的所有内容介绍完了,相信你已经具备了正则开发的能力,如果想获取以上的源代码,请在后台回复关键词“正则源码”获取。

推荐一个正则工具“RegexBuddy”,在后台回复关键词“正则表达式”获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1033183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenHarmony应用核心技术理念与需求机遇简析

一、核心技术理念 图片来源&#xff1a;OpenHarmony官方网站 二、需求机遇简析 新的万物互联智能世界代表着新规则、新赛道、新切入点、新财富机会;各WEB网站、客户端( 苹果APP、安卓APK)、微信小程序等上的组织、企业、商户等;OpenHarmony既是一次机遇、同时又是一次大的挑战&…

【20230919】win11无法删除Chrome注册表项

win11无法删除Chrome注册表项 删除以下注册表项发生错误&#xff1a; 计算机\HKEY_LOCAL_MACHINE\SOFTWAR\Google计算机\HKEY_CURRENT_USER\Software\Google 尝试了很多删除注册表方法&#xff08;例如&#xff1a;编辑remove.reg文件&#xff09;&#xff0c;都不行。 无法…

近三年各领域数字孪生相关政策汇编(可下载)

自2021年国家“十四五”规划纲要提出“探索建设数字孪生城市”以来&#xff0c;国家发展和改革委员会、工业和信息化部、住房和城乡建设部、水利部、农业农村部等部门纷纷出台政策&#xff0c;大力推动数字孪生在千行百业的落地发展。这些政策不仅为数字孪生的应用提供了广阔的…

OpenCV之怀旧图片

原始图片 图片模糊 Mat _blur;cv::GaussianBlur(src,_blur,Size(3,3),0); 图片锐化 Mat _sharp;Mat kernal Mat::zeros(3,3,CV_32FC1);kernal.at<float>(0,1) -1;kernal.at<float>(1,0) -1;kernal.at<float>(1,1) 5;kernal.at<float>(1,2) -1;ker…

国内首家!阿里云 Elasticsearch 8.9 版本释放 AI 搜索新动能

简介&#xff1a; 阿里云作为国内首家上线 Elasticsearch 8.9版本的厂商&#xff0c;在提供 Elasticsearch Relevance Engine™ (ESRE™) 引擎的基础上&#xff0c;提供增强 AI 的最佳实践与 ES 本身的混合搜索能力&#xff0c;为用户带来了更多创新和探索的可能性。 近年来&a…

47个Docker常见故障的原因和解决方式

本文针对Docker容器部署、维护过程中&#xff0c;产生的问题和故障&#xff0c;做出有针对性的说明和解决方案&#xff0c;希望可以帮助到大家去快速定位和解决类似问题故障。 Docker是一种相对使用较简单的容器&#xff0c;我们可以通过以下几种方式获取信息&#xff1a; 1、…

搭建自己的搜索引擎之二

一、前言 接上篇 搭建自己的搜索引擎之一 &#xff0c;本篇主要讲ElasticSearch单实例安装配置。 二、安装配置ElasticSearch ElasticSearch版本更新比较频繁&#xff0c;当前已经是8.0版本了&#xff0c;我这里安装的是7.1.1版本&#xff0c;其它版本详细说明可以查阅官方文…

Ae 效果:CC Force Motion Blur

时间/CC Force Motion Blur Time/CC Force Motion Blur CC Force Motion Blur &#xff08;CC 强制运动模糊&#xff09;主要用于为动态图像添加强制的运动模糊效果&#xff0c;增加动态画面的流畅感和真实感。 相对于时间轴面板上的“运动模糊”开关&#xff0c;CC Force Moti…

【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 问题分析、数学模型及代码实现

【2023年中国研究生数学建模竞赛华为杯】E题 出血性脑卒中临床智能诊疗建模 1 题目 1.1 背景介绍 出血性脑卒中指非外伤性脑实质内血管破裂引起的脑出血&#xff0c;占全部脑卒中发病率的10-15%。其病因复杂&#xff0c;通常因脑动脉瘤破裂、脑动脉异常等因素&#xff0c;导致…

物联网、工业大数据平台 TDengine 与苍穹地理信息平台完成兼容互认证

当前&#xff0c;在政府、军事、城市规划、自然资源管理等领域&#xff0c;企业对地理信息的需求迅速增加&#xff0c;人们需要更有效地管理和分析地理数据&#xff0c;以进行决策和规划。在此背景下&#xff0c;“GIS 基础平台”应运而生&#xff0c;它通常指的是一个地理信息…

iOS——引用计数(一)

自动引用计数 自动引用计数&#xff08;ARC&#xff0c;Automatic Reference Counting&#xff09;是指内存管理中对引用采取自动计数的技术。 满足以下要求后&#xff0c;我们的代码就无需再次键入retain或者是release代码了&#xff1a; 使用Xcode 4.2或以上版本使用LLVM编…

【云原生】DevOps 环境搭建

本文使用 Gitlab&#xff0c;Jenkins&#xff0c;Docker&#xff0c;K8s&#xff0c;Harbor 实现CICD环境搭建 一、Gitlab环境部署 说明&#xff1a;内存尽量给多点&#xff08;2G以上&#xff09;&#xff0c;后面会安装一些软件&#xff0c;会占用内存 1.1、安装依赖软件 y…

MySQL作业1

目录 一.创建一张表&#xff0c;包含以下所有数据类型 建表&#xff1a;​编辑 二.使用以下六种约束 1.非空约束 2.唯一约束 3.主键约束 4.外键约束 5.检查约束 6.默认值约束 一.创建一张表&#xff0c;包含以下所有数据类型 Text 类型&#xff1a; Number 类型&#…

java框架-Springboot3-web开发

文章目录 自动配置默认效果WebMvcAutoConfigurationWebMvcConfigurer接口静态资源访问首页Favicon缓存 自定义静态资源路径1、配置方式2、代码方式 路径匹配规则内容协商默认支持json配置支持xml内容协商原理自定义支持ymal 模板引擎模板引擎Thymeleaf整合基础语法遍历判断属性…

网络爬虫——HTTP和HTTPS的请求与响应原理

目录 一、HTTP的请求与响应 二、浏览器发送HTTP请求的过程 三、HTTP请求方法 四、查看网页请求 五、常用的请求报头 六、服务端HTTP响应 七、常用的响应报头 八、Cookie 和 Session 九、响应状态码 十、网页的两种加载方法 十一、认识网页源码的构成 十二、爬虫协议…

IOTE 2023盛况回顾,美格智能聚连接之力促数字新生长

9月20~22日&#xff0c;IOTE国际物联网展深圳站在深圳国际会展中心正式召开。本届展会以“IoT构建数字经济底座”为主题&#xff0c;聚焦物联网技术助推数字经济发展的核心动力。美格智能携前沿技术成果亮相展会&#xff0c;与参展观众深入交流。 展会上&#xff0c;美格智能带…

Docker - 使用 Dockerfile 封装已有的 Docker Image

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/133170855 Dockerfile 是用来构建 Docker 镜像的文本文件&#xff0c;包含了一系列的指令和说明&#xff0c;用于描述如何从一个基础镜像开始&…

2023华为杯数学建模D题——碳排放路径优化基于指数分解法的LMDI 模型

LMDI 模型是基于指数分解法&#xff08;IDA&#xff09; 发展而成的一种因素分解法。LMDI模型在 Kaya 拓展式的基础上&#xff0c; 利用对数平均法对影响因素进行分析。 综合比较其他的指数分解方法&#xff0c; LMDI 分解法有着可完全分解因子、 无残差项等优势。根据对 Kaya …

Mysql数据库管理用户

Mysql数据库管理用户 一、管理用户1.1、用户创建1.2、 查看用户信息1.3 、重命名用户1.4、 删除用户1.5、 修改当前登录用户密码1.6、修改其他用户密码1.7、 忘记密码的解决办法 二、数据库用户授权2.1、 权限的授予2.2、 查看权限2.3、 撤销用户权限 一、管理用户 1.1、用户创…

搭建自己的搜索引擎之一

一、前言 关于搜索引擎自己接触的还算是比较多的&#xff0c;先简单回忆一下以前做过的事情&#xff0c;以前工作没有什么文档沉淀下来很多事情几乎都快忘差不多了&#xff0c;挺遗憾的。 1、10几年前在东奇软件做企业网站时玩过Lucene&#xff0c;当时中文分词还很弱&#xf…