使用正则表达式判断密码强弱

 更新时间:2017年06月15日 10:30:01   作者:baddog_  
本文给大家分享使用正则表达式来判断密码强弱的实例代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧

学python的re模板,写了个文章发现没人看,所以总结出来经验,理论没人爱,实战的人心,那么既然没人喜欢理论就直接上实战,在实战中精炼理论.不多说直接先上代码

def password_level(password):
 weak = re.compile(r'^((\d+)|([A-Za-z]+)|(\W+))$')
 level_weak = weak.match(password)
 level_middle = re.match(r'([0-9]+(\W+|\_+|[A-Za-z]+))+|([A-Za-z]+(\W+|\_+|\d+))+|((\W+|\_+)+(\d+|\w+))+',password)
 level_strong = re.match(r'(\w+|\W+)+',password)
 if level_weak:
  print 'password level is weak',level_weak.group()
 else:
  if (level_middle and len(level_middle.group())==len(password)):
   print 'password level is middle',level_middle.group()
  else:
   if level_strong and len(level_strong.group())==len(password):
    print 'password level is strong',level_strong.group()

解释一下

弱密码:全是数字,符号,字母

中等密码:数字加上符号,数字加上字母,字母加上符号

强密码:三个混合.

我没有区分大小写,希望有兴趣的可以自己写写.问题出现在\w上因为\w等价与[A-Za-z0-9_]所以前期通过\W不能匹配到包含下滑线的字符串

我们来看看中等密码,数字加上符号或者字母或者_是一个组,字母加上符号或者下划线或者符号是一个组,符号或者下划线加上字母或者数字是一个组,我总觉得这个里面的代码好像不对但是通过测试又没发现什么不对的地方,就先用这个版本0.0.1吧

测试代码

if __name__ == '__main__':
 passwords = ('11','aa','LL','1a','1_','a_','a1','_1','*a','1a_','1a<')
 for pw in passwords:
  password_level(pw)
'''----------------------output------------------------
#password level is weak 11
#password level is weak aa
#password level is weak LL
#password level is middle 1a
#password level is middle 1_
#password level is middle a_
#password level is middle a1
#password level is middle _1
#password level is middle *a
#password level is strong 1a_
#password level is strong 1a<
'''

以上所述是小编给大家介绍的使用正则表达式判断密码强弱的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • PHP正则表达式完全教程之提高篇

    PHP正则表达式完全教程之提高篇

    正则表达式,大家在开发中应该是经常用到,现在很多开发语言都有正则表达式的应用,比如javascript,java,.net,php等等,我今天就把我对正则表达式的理解跟大家唠唠,不当之处,请多多指教!
    2015-09-09
  • 浅析golang 正则表达式

    浅析golang 正则表达式

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。这篇文章给大家介绍golang 正则表达式的相关知识,感兴趣的朋友跟随小编一起看看吧
    2020-10-10
  • asp 图片正则 替换,替换前检查图片是不是本地地址的方法

    asp 图片正则 替换,替换前检查图片是不是本地地址的方法

    这个图片正则先检查图片的地址,不是本地的则用本地的asp突破盗链,方便使用,注意是答chinaz的朋友问的一个问题
    2008-08-08
  • 正则表达式(RegExp)判断文本框中是否包含特殊符号

    正则表达式(RegExp)判断文本框中是否包含特殊符号

    有时,我们希望判断文本框中用户输入的字符是否含有特殊符号(*/#$@),就像用户注册时密码框的填写。下面小编给大家分享一个demo,感兴趣的朋友一起看看吧
    2019-10-10
  • Java正则表达式基础入门知识

    Java正则表达式基础入门知识

    正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串。
    2015-09-09
  • 正则表达式匹配IP的表达式(推荐)

    正则表达式匹配IP的表达式(推荐)

    正则表达式,又称规则表达式。接下来通过本文给大家介绍正则表达式匹配IP的表达式,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2016-12-12
  • JS 正则 时间验证

    JS 正则 时间验证

    JS 正则 时间验证代码,需要的朋友可以参考下。
    2009-11-11
  • js正则表达式讲解之index属性(RegExp对象)

    js正则表达式讲解之index属性(RegExp对象)

    index与search返回的值相同,不管是是否匹配到合适内容,如果找到合适内容则index为匹配内容其实字符的起始位置,如果没有找到则返回-1
    2012-10-10
  • 正则表达式匹配ip地址超详细讲解

    正则表达式匹配ip地址超详细讲解

    在很多场景下我们经常需要在服务器上用正则表达式来匹配IP地址,下面这篇文章主要给大家介绍了关于正则表达式匹配ip地址超详细讲解的相关资料,需要的朋友可以参考下
    2022-12-12
  • linux 正则表达式深度解析

    linux 正则表达式深度解析

    大体来讲,正则表达式的文法分为3种标准:BRE、ERE 和 ARE。其中 BER 和 ERE 属于 POSIX 标准,ARE 则是由各家定义的扩展
    2013-11-11

最新评论