学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<'''
以上所述是⼩编给⼤家介绍的使⽤正则表达式判断密码强弱的实例代码,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对脚本之家⽹站的⽀持!
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务