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

学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<
‘‘‘

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

http://www.jiuaidushu.com/cpgjhegfgncpcfefdjcfdjdicfecegcfefdhcfdidjcfecdjcfefdjcfdidhcfdied/

时间: 2024-10-10 23:24:05

python 使用正则表达式判断密码强弱的相关文章

Python 使用正则表达式验证密码必须包含大小写字母和数字

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px ".PingFang SC Light" } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue" } span.s1 { font: 14.0px "Helvetica Neue" } span.s2 { font: 14.0px ".PingF

python中用正则表达式检查密码是否安全

目的:通过正则表达式检查密码是否强大,这个方法在需要注册网页上应该很常用. 环境:ubuntu 16.04  python3.5 思路:需要多个正则表达式,依次检查输入的密码是否符合要求,可以if或者for配合. import re # 密码至少8位数 rule_1 = re.compile(r'\w{8,}') # 密码同时包含大小写字母 rule_2 = re.compile(r'([a-z].*[A-Z])|([A-Z].*[a-z])') # 密码至少有一位数字 rule_3 = re.

iOS正则表达式判断密码

iOS 正则表达式 不能全部为数字 不能全部为字母 必须包含字母和数字 6-20位 -(BOOL)checkPassWord { //6-20位数字和字母组成 NSString *regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$"; NSPredicate * pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; if ([p

Js判断密码强度并显示提示信息

用javascipt实现的Ajax判断密码强弱的功能,大多数有用户注册功能的网站,都会有这么一个功能,作为WEB程序员,应该会写这种小模块哦,不懂的就看下这个例子,觉得挺简单,当初帮助了不少人学会了密码强度的检测. 表单部分,用来显示密码框和密码强度提示信息: <form name=form1 action="" > 请设置密码:<input type="password" size="10" onKeyUp="pwS

Python练习题9(密码判断):请写一个密码安全性检查的代码代码: 首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出

'''请写一个密码安全性检查的代码代码:首先判断密码的强度,如果结果是低或中则打印如何提升密码安全级别的提示,而高则直接退出 # 密码安全性检查代码## 低级密码要求:# 1. 密码由单纯的数字或字母组成# 2. 密码长度小于等于8位## 中级密码要求:# 1. 密码必须由数字.字母或特殊字符(仅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意两种组合# 2. 密码长度不能低于8位## 高级密码要求:# 1. 密码必须由数字.字母及特殊字符

python 字符串实例:检查并判断密码字符串的安全强度

检查并判断密码字符串的安全强度 import string def check(pwd): #密码必须至少包含六个字符 if not isinstance(pwd,str) or len(pwd)<6: return 'noot suitable for password' #密码强度等级与包含字符种类的对应关系 d = {1:'weak',2:'below middle',3:'above middle',4:'strong'} #分别用来标记pwd是否含有数字.小写字母.大写字母.指定的标点

软件测试——C#判断密码是否符合要求

[这个测试算是在之前的闰年测试的基础上改进的. 通过这个测试,我对正则表达式又有了进一步的了解.] 为了在各网站获取更多的权限,人们需要注册账号,并填写符合要求的密码以及其他信息. 每个网站对密码的要求不同,有的甚至还会判断当前密码的强度(o´ω`o)ノ 我们现在结合正则表达式的语法写一个判断密码是否符合要求的C#程序.

python的正则表达式 re

python的正则表达式 re 本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义.这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解.比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写

python之条件判断、循环和字符串格式化

1. python的条件判断:if和else 在条件判断中可以使用算数运算符 等于:== 不等于:!= 大于:> 小于:< 大于等于:>= 小于等于:<= 示例1: username=input('请输入用户名:')passwd=input('请输入密码:')if username == 'mpp' and passwd == '123': print('登录成功')else: print('用户名或密码错误') 示例2:if里可以嵌套if,也可以使用elif score=int(