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.compile(r‘\d‘)
# 密码不符合要求的显示
NO = u‘输入的密码不够强壮!‘
# 密码符合要求的显示
YES = u‘输入的密码很结实!‘

print(u‘请输入密码:‘)
passwd = input(‘>‘)

if rule_1.search(passwd) == None:
    print(NO)
elif rule_2.search(passwd) == None:
    print(NO)
elif rule_3.search(passwd) == None:
    print(NO)
else:
    print(YES)

这个就是主要部分了,还可以添加特殊字符检查,或者尝试用for循环写也许更简短一点。

时间: 2024-11-23 22:01:39

python中用正则表达式检查密码是否安全的相关文章

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]+))+|

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

检查密码复杂度的C#正则表达式

原文:检查密码复杂度的C#正则表达式 在用户注册与修改.重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一. 而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字.小写或大写字母.特殊字符.字符数在8-30之间,对应的正则表达式如下: var regex = new Regex(@" (?=.*[0-9]) #必须包含数字 (?=.*[a-zA-Z]) #必须包含小写或大写字母 (?=([\x21-\x7e]+)[^a-zA-Z0-9]) #必须包含特殊符号 .{8

[转] 检查密码复杂度的 C# 正则表达式

在用户注册与修改.重置密码时,强制密码达到一定的复杂度,是减少盗号的有效措施之一. 而在代码中检查密码复杂度就需要用到正则表达式,比如要求密码必须包含数字.小写或大写字母.特殊字符.字符数在 8-30 之间,对应的正则表达式如下: var regex = new Regex(@" (?=.*[0-9]) #必须包含数字 (?=.*[a-zA-Z]) #必须包含小写或大写字母 (?=([\x21-\x7e]+)[^a-zA-Z0-9]) #必须包含特殊符号 .{8,30} #至少8个字符,最多30

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

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

python study - 正则表达式

第 7 章 正则表达式 7.1. 概览 7.2. 个案研究:街道地址 7.3. 个案研究:罗马字母 7.3.1. 校验千位数 7.3.2. 校验百位数 7.4. 使用 {n,m} 语法 7.4.1. 校验十位数和个位数 7.5. 松散正则表达式 7.6. 个案研究:解析电话号码 7.7. 小结 正则表达式是搜索.替换和解析复杂字符模式的一种强大而标准的方法.如果你曾经在其他语言 (如 Perl) 中使用过它,由于它们的语法非常相似,你仅仅阅读一下 re 模块的摘要,大致了解其中可用的函数和参数就

python的正则表达式 re

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

Java中用正则表达式找出数字

Java中用正则表达式找出数字 1.题目    String str = "fjd789klsd908434jk#$$%%^38488545",从中找出78990843438488545,请找到解决办法 2.实现源码 /** * */ package com.you.model; /** * @author YouHaidong * */ public class FindNumber { /** * 字符串str */ public static String str = "

python 中正则表达式

. 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 代码/语法 说明 * 重复零次或更多次 + 重复一次或更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或更多次 {n,m} 重复n到m次 [aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!). [0-9]代表的含意与\d就是完全一致的:一位数字:同理[a-z0-9A-Z_]也完