广告位联系
返回顶部
分享到

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

python 来源:互联网 作者:佚名 发布时间:2024-05-14 21:39:39 人浏览
摘要

代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import re def check_password(password): # 检查长度是否在6-20之间 if not 6 = len(password) = 20: return False # 检查是否包含小写字母 if not re.search(r[

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

import re

 

def check_password(password):

    # 检查长度是否在6-20之间

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

        return False

    # 检查是否包含小写字母

    if not re.search(r'[a-z]',password):

        return False

    # 检查是否包含大写字母

    if not re.search(r'[A-Z]',password):

        return False

    # 检查是否包含数字

    if not re.search(r'[0-9]',password):

        return False

    # 检查是否包含特殊字符

    if not re.search(r'[!@#$%^&*()_+-=,.<>?]',password):

        return False

    return True

 

# 测试

password = "Abc123!@"

print(check_password(password)) # True

password = "abc"

print(check_password(password)) # False

描述信息:

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

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

1

2

3

4

5

6

7

8

9

import re

 

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

描述信息:

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

附要求:6位密码,含有数字、大小写字母,及~!@中的特殊符号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

import re

  

while True:

    pwd = input('请输入您的密码:')

    r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@])[0-9a-zA-Z~!@]{6}$'

    result = re.match(r, pwd)

    if result is None:

        print('请输入正确的密码格式!')

        print('要求6位密码,含有数字、大小写字母,及~!@中的特殊符号!')

    else:

        break

  

print('成功设置密码!')

print(f'您的密码是:{pwd}')

(?=.*?\d) 检查数字;(?=.*[a-z]) 检查小写英文字母;(?=.*[A-Z]) 检查大写英文字母;

测试:

1

2

# 若不限制长度

r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'

总结 


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计