当前位置:

Python脚本, 验证用户密码是否规范

访客 2024-01-05 693 0

代码如下:

  • importre
  • defcheck_password(password):
  • #检查长度是否在6-20之间
  • ifnot6<=len(password)<=20:
  • returnFalse
  • #检查是否包含小写字母
  • ifnotre.search(r'[a-z]',password):
  • returnFalse
  • #检查是否包含大写字母
  • ifnotre.search(r'[A-Z]',password):
  • returnFalse
  • #检查是否包含数字
  • ifnotre.search(r'[0-9]',password):
  • returnFalse
  • #检查是否包含特殊字符
  • ifnotre.search(r'[!@#$%^&*()_-=,.<>?]',password):
  • returnFalse
  • returnTrue
  • #测试
  • password="Abc123!@"
  • print(check_password(password))#True
  • password="abc"
  • print(check_password(password))#False
  • 描述信息:

    1. 代码中我们定义了一个check_password函数,该函数接受一个参数password,表示要验证的密码
    2. 首先判断密码长度是否在6-20之间,如果不是,直接返回False
    3. 使用正则表达式re.search("[a-z]",password)判断密码中是否包含小写字母,如果不包含,返回False
    4. 同理使用re.search("[A-Z]",password)判断是否包含大写字母,使用re.search("[0-9]",password)判断是否包含数字,如果不是,直接返回False

    当然,你也可以使用re.compile()函数编译了一个正则表达式,代码如下:

  • importre
  • password_pattern=re.compile(r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_-=,.<>?])[A-Za-z\d!@#$%^&*()_-=,.<>?]{6,20}$')
  • #测试
  • password="Abc123!@"
  • print(bool(password_pattern.match(password)))#True
  • password="abc"
  • print(bool(password_pattern.match(password)))#False
  • 描述信息:

    1. 正则表达式中我们使用了(?=.[a-z])匹配至少一个小写字母,(?=.[A-Z])匹配至少一个大写字母,(?=.\d)匹配至少一个数字,(?=.[!@#$%^&()_-=,.<>?])匹配至少一个特殊字符,[A-Za-z\d!@#$%^&()_-=,.<>?]{6,20}$匹配6-20位的字符串
    2. 使用.match()方法来匹配字符串,如果匹配成功返回一个matchobject,否则返回None

    发表评论

    • 评论列表
    还没有人评论,快来抢沙发吧~