用于检查密码有效性的Python程序
在这个程序中,我们将密码作为字母数字字符和特殊字符的组合,并在几个条件的帮助下检查密码是否有效。
密码验证的主要条件:
- 最少 8 个字符。
- 字母必须在 [az] 之间
- 至少一个字母应为大写 [AZ]
- [0-9] 之间至少有 1 个数字或数字。
- [ _ 或 @ 或 $ ] 中至少有 1 个字符。
例子:
Input : R@m@_f0rtu9e$
Output : Valid Password
Input : Rama_fortune$
Output : Invalid Password
Explanation: Number is missing
Input : Rama#fortu9e
Output : Invalid Password
Explanation: Must consist from _ or @ or $
在这里,我们使用了在Python中为正则表达式提供支持的re模块。除此之外,re.search() 方法返回 False(如果在第二个参数中未找到第一个参数)此方法最适合测试正则表达式,而不是提取数据。我们使用 re.search() 来检查字母、数字或特殊字符的验证。为了检查空格,我们使用正则表达式模块中的“\s”。
# Python program to check validation of password
# Module of regular expression is used with search()
import re
password = "R@m@_f0rtu9e$"
flag = 0
while True:
if (len(password)<8):
flag = -1
break
elif not re.search("[a-z]", password):
flag = -1
break
elif not re.search("[A-Z]", password):
flag = -1
break
elif not re.search("[0-9]", password):
flag = -1
break
elif not re.search("[_@$]", password):
flag = -1
break
elif re.search("\s", password):
flag = -1
break
else:
flag = 0
print("Valid Password")
break
if flag ==-1:
print("Not a Valid Password")
输出:
Valid Password
替代方法:-
l, u, p, d = 0, 0, 0, 0
s = "R@m@_f0rtu9e$"
if (len(s) >= 8):
for i in s:
# counting lowercase alphabets
if (i.islower()):
l+=1
# counting uppercase alphabets
if (i.isupper()):
u+=1
# counting digits
if (i.isdigit()):
d+=1
# counting the mentioned special characters
if(i=='@'or i=='$' or i=='_'):
p+=1
if (l>=1 and u>=1 and p>=1 and d>=1 and l+p+u+d==len(s)):
print("Valid Password")
else:
print("Invalid Password")
输出:
Valid Password