用python验证用户密码是否规范

2024-05-17 18:33:27 浏览数 (2)

1 问题

编写代码验证密码是否满足以下条件:长度位于[6,20]之间,必须包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,最终返回True或False,并写明不符合的原因。

2 方法

借助于正则表达式检验密码是否规范,需先导入python中的re模块,re.findall(r"[a-z]", password)则表示在password中必须搜索到小写字母,其他检测以此类推,而特殊字符的检测需要表示为re.findall(r"[^0-9A-Za-z]", password),添加一个‘^’表示除0-9A-Za-z以外的字符。

代码清单1

import re

def check_password(password):

if not 6 <= len(password) <= 20:

return False, "密码必须在6~20之间"

if not re.findall(r"[a-z]", password):

return False, "必须包含至少一个小写字母"

if not re.findall(r"[A-Z]", password):

return False, "必须包含至少一个大写字母"

if not re.findall(r"[0-9]", password):

return False, "必须包含至少一个数字"

if not re.findall(r"[^0-9A-Za-z]", password):

return False, "必须包含至少一个特殊字符"

return True, None

print("Helloworld*678", check_password("Helloworld*678"))

print("Helloworld#", check_password("Helloworld#"))

print("helloworld#678", check_password("helloworld#678"))

print("Helloworld678", check_password("Helloworld678"))

3 结语

针对验证密码格式是否规范的问题,提出导入re模块对相关条件依次进行检验的方法,通过此次实验,证明该方法是有效的。

0 人点赞