题目描述
输入一行或多行字符串密码,验证每行密码是否符合规范,符合提示“OK”,否则“NG”。密码规范为:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
解题思路
1.获取输入的多行字符串
2.对每行字符串进行密码验证:
1)如果密码长度小于等于8或者是密码中有长度超过2的重复子串,则密码NG
2)在1)不满足的情况下再看有没有至少包含大写字母、小写字母、数字、其他符号
python代码实现
import sys
import re
def has_Dup(str):
for i in range(len(str)-3):
for j in range(i+1, len(str)-3):
if str[i:i+3] == str[j:j+3]:
return True
def check_pwd(pwd):
if len(pwd) <= 8 or has_Dup(pwd):
return False
count = 0
if re.search('[0-9]', pwd):
count += 1
if re.search('[a-z]', pwd):
count += 1
if re.search('[A-Z]', pwd):
count += 1
if re.search('\W', pwd):
count += 1
if count >= 3:
return True
pwdList = sys.stdin.readlines()
for x in pwdList:
x = x.strip()
if check_pwd(x):
print('OK')
else:
print('NG')
总结
到此这篇关于python实现密码验证合格程序的思路详解的文章就介绍到这了,更多相关python密码验证合格程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!