当用户登录网站时,一般要求用户提供登录该网站的用户名称和密码。从某种意义上说,密码的复杂程度越高,用户的信息安全性越高。因此,很多网站在注册用户信息或修改用户密码时,往往会提供一个密码强度的说明,从而提醒用户使用高强度的密码。

目前来说,密码字符可以分为3种:数字、字母和特殊字符(即除数字、字母之外的字符)。用户密码包含上述3种字符种的种类越多,密码的安全性越高。用户密码只含其中一种的安全性是最低的,如123455、abcdef等。其次是含上述2种字符的密码,如123abc、123!@#等。密码强度最好的是:包含上述3种字符,如123QAZ!@#。

注意:本小节中的特殊字符包括`、-、=、\、[、]、;、'、,、.、/、~、!、@、#、$、%、^、&、*、(、)、_、+、|、?、>、

1.只包含数字的密码验证

如果密码中只包含数字,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含数字的密码。

\d+                                                                                 (68)

该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含数字的密码。

\d{6,}                                                                     (69)

2.只包含字母的密码验证

如果密码中只包含字母,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含字母的密码。

[a-zA-Z]+                                                                      (70)

该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含字母的密码。

[a-zA-Z]{6,}                                                                    (71)

3.只包含特殊字符的密码验证

如果密码中只包含特殊字符,那么该密码是非常简单。当然,它的安全性也相对较差。以下正则表达式能够验证只包含特殊字符的密码。

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

正则表达式(72)解释:

q      \\表示字符\。

q      \[表示字符[。

q      \]表示字符]。

q      其他的每一个字符就表示字符本身。

该类型密码的安全性随着密码的长度增加而增加。密码长度越大,它的安全性越高。以下正则表达式能够验证长度至少为6的、只包含特殊字符的密码。

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

使用工具Regex Tester测试正则表达式(73),结果如图4.34所示。

4.当且仅当含数字和字母的密码验证

如果密码当且仅当包含数字和字母,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证当且仅当包含数字和字母的密码。

[\da-zA-Z]*\d+[a-zA-Z]+[\da-zA-Z]*                                      (74)

正则表达式(74)解释:

\d匹配长度至少1的、由数字组成的字符串。

[a-zA-Z]+匹配长度至少1的、由字母组成的字符串。

[\da-zA-Z]*匹配空字符串,或者长度至少1的、由数字或字母组成的字符串。

\d+[a-zA-Z]+保证密码既包含了数字又包含特殊字符。

使用工具Regex Tester测试正则表达式(74),结果如图所示。

5.当且仅当含数字和特殊字符的密码验证

如果密码当且仅当包含数字和特殊字符,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证当且仅当包含数字和特殊字符的密码。

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

正则表达式(75)解释:

字符类[-\d`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+:\d表示任意数字;\\表示字符\;\[表示字符[;\]表示字符];其他的每一个字符就表示字符本身。该字符类可以匹配数字或者特殊字符。

\d+匹配最小长度为1的、由数字组成的字符串。

[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+匹配最小长度为1的、由特殊字符组成的字符串。

\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+保证密码既包含了数字又包含特殊字符。

使用工具Regex Tester测试正则表达式(75),结果如图所示。

6.当且仅当包含字母和特殊字符的密码验证

如果密码当且仅当包含字母和特殊字符,那么该密码的强度是中等强度。当然,它的安全性一般。以下正则表达式能够验证只包含字母和特殊字符的密码。

[-a-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]*[a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+[-a-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]*            (76)

正则表达式(76)解释:

字符类[-a-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+:a-z表示小写字母;A-Z表示大写字母;\\表示字符\;\[表示字符[;\]表示字符];其他的每一个字符就表示字符本身。该字符类可以匹配字母或者特殊字符。

[a-zA-Z]+匹配最小长度为1的、由字母组成的字符串。

[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+匹配最小长度为1的、由特殊字符组成的字符串。

[a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+保证密码既包含了字母又包含特殊字符。

使用工具Regex Tester测试正则表达式(76),结果如图所示。

7.当且仅当包含数字、字母和特殊字符的密码验证

如果密码当且仅当包含数字、字母和特殊字符,那么该密码的强度是高强度。当然,它的安全性相对比较好。以下正则表达式能够验证当且仅当包含数字、字母和特殊字符的密码。

[-\da-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]*

(

(\d+[a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+) #数字开头

|(\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+[a-zA-Z]+) #数字开头

|([a-zA-Z]+\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+) #字母开头

|([a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+\d+) #字母开头

|([-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+\d+[a-zA-Z]+) #特殊字符开头

|([-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+[a-zA-Z]+\d+) #特殊字符开头

)

[-\da-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]*                         (77)

正则表达式(77)解释:

\d+匹配最小长度为1的、由数字组成的字符串。

[a-zA-Z]+匹配最小长度为1的、由字母组成的字符串。

[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+匹配最小长度为1的、由特殊字符组成的字符串。

\d+[a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+匹配型如“数字+字母+特殊字符”类型的字符串。

(\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+[a-zA-Z]+)匹配型如“数字+特殊字符+字母”类型的字符串。

[a-zA-Z]+\d+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+匹配型如“字母+数字+特殊字符”类型的字符串。

[a-zA-Z]+[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+\d+匹配型如“字母+特殊字符+数字”类型的字符串。

[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+\d+[a-zA-Z]+匹配型如“特殊字符+数字+字母”类型的字符串。

[-`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]+[a-zA-Z]+\d+匹配型如“特殊字符+字母+数字”类型的字符串。

字符类[-\da-zA-Z`=\\\[\];',./~!@#$%^&*()_+|{}:"<>?]*:\d表示任意数字;a-z表示小写字母;A-Z表示大写字母;\\表示字符\;\[表示字符[;\]表示字符];其他的每一个字符就表示字符本身。该字符类可以匹配数字、字母或者特殊字符。

使用工具Regex Tester测试正则表达式(77),结果如图所示。

java正则表达式 密码强度_密码验证,密码强度正则表达式相关推荐

  1. 忘了微信密码怎么办_忘记微信密码怎么办?读出几个数字,没密码也能登录,后悔才知道...

    收纳世间百态,分享生活妙招.源于生活,乐于体验.点击关注,每日分享生活小技巧. 忘记微信密码怎么办?读出几个数字,没密码也能登录,后悔才知道 提到微信,大家再熟悉不过了.微信作为一个即时通讯工具,方便 ...

  2. 忘了微信密码怎么办_微信账号密码忘了怎么办 微信找回账号密码

    微信是一种超过五亿人使用的手机软件,现代人也越来越离不开微信.可以说,微信是一种生活方式,成为我们或不可缺的一部分.微信不仅可以发送玄心,也可以发送视频和语音.微信这么方便,可是密码要是忘记了,小伙伴 ...

  3. 鱼福php管理员密码修改_改无线网密码管理员密码是什么?

    问:我在修改无线网密码的时候,系统提示需要输入管理员密码,但我不知道管理员密码是什么了.知道的朋友,可以告诉我一下么? 答:路由器的管理员密码,又被叫做:登录密码:不同的路由器,管理员密码的情况不一样 ...

  4. 忘了微信密码怎么办_忘记微信密码了怎么办,一招帮你快速找回密码

    微信的使用几乎成为了一种生活不可或缺的生活方式.如果我们在不经意间忘记了这个微信登陆密码该怎么办?如何找回呢? 根据微信注册的方式,找回帐号大致分为以下三类: 第一种,以QQ号注册的微信帐号 如果你的 ...

  5. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

    判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...

  6. Java手机忘了密码怎么办_手机开机密码忘记了怎么办

    如果您的手机是在从EMUI 3.0或EMUI 3.1升级到EMUI 4.0版本后,不能解锁. 请您确认之前是否开启了隐私保护模式,开启隐私模式时,您会有两套解锁密码,而升级到EMUI 4.0后没有隐私 ...

  7. Java手机忘了密码怎么办_忘记Linux密码怎么办

    忘记Linux密码怎么办 ----如果忘记了Linux密码,这时有两种情况,一种是用LILO管理器来启动的,另一种是不通过LILO启动的.如果你的系统是通过LILO管理器来启动的,可在LILO启动提示 ...

  8. 使用密钥加密码加密_创建基于密码的加密密钥

    使用密钥加密码加密 本文讨论了创建基于密码的加密PBE密钥. 首先提醒您以前的要点–通常,在实际操作中,应将PBE密钥用作主密钥,该主密钥仅用于解锁工作密钥. 这具有三个主要优点: 您可以有多个密码, ...

  9. 忘了微信密码怎么办_微信支付密码怎么改?微信支付密码忘了怎么办?详细教程来了!...

    "一部手机走天下"至少在中国,已完全成为现实.无论是出门旅行,或是商场购物,还是日常生活,手机端APP支付已经成为了我们的基本支付工具."扫一扫"支付,已经完全 ...

  10. 数据库身份证号加密密码加密_使用基于密码的加密保护会议室数据库

    数据库身份证号加密密码加密 As developers we are often tasked with securing the data we store in our applications. ...

最新文章

  1. android AIDL IPC深入分析
  2. R语言plotly可视化:plotly可视化箱图、基于预先计算好的分位数、均值、中位数等统计指标可视化箱图、箱图中添加缺口、可视化均值和标准差(With Precomputed Quartiles)
  3. 如何创建高质量的TypeScript声明文件(六) - 示例
  4. 如果对象为空,java函数String.valueOf(Object obj)返回null字符串
  5. 网站商务通如何导出查看历史聊天纪录
  6. CAS Server(三):配置MySQL数据库验证用户名密码
  7. CAN接口芯片SN65HVD230DR波形
  8. 请求nginx静态资源报403
  9. python glob.glob() 函数
  10. Jeecg-Boot 1.0 版本发布,基于SpringBoot+Mybatis+AntDesign快速开发平台
  11. [告知]在评论中发布广告者必删!
  12. 实现一个 webpack loader
  13. springboot中spring.profiles.active来引入多个properties文件 Springboot获取容器中对象
  14. 盈透IBKR IBAPI Quant | Database | 通过盈透ibapi下载历史数据 Part 01
  15. tolua unity 报错_Unity3D热更新技术点——ToLua(上)
  16. 等保三级全称是什么?是什么意思?
  17. MySQL - redolog 图文详解
  18. 菜鸟谈VBA最最基础入门
  19. xp下安装什么linux系统版本,windows xp sp3下怎么安装linux系统?
  20. 自动化测试平台(十三):接口自动化框架与平台对比及应用场景分析及设计思路分享

热门文章

  1. python中iloc用法_python pandas --loc、iloc用法
  2. 微信小程序做Table表格
  3. 谁说不可兼得,用scrcpy实现手机免流播放bilibili投屏电脑
  4. h5+css 水平菜单制作
  5. ehcache缓存配置说明
  6. 天天加班,哪能脱单?
  7. java对接ntlm_NTLM认证的proxy客户端的Java实现-NTLM_Proxy.java
  8. select 查询、统计
  9. HTML基本的一些知识以及标签的使用
  10. frp网络穿透(frps,frpc)