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

 更新时间:2024年05月13日 11:11:18   作者:扶苏如是  
对用户密码的强度进行校验,要求用户密码达到一定的强度,符合安全性要求,这篇文章主要给大家介绍了关于Python验证用户密码是否规范的相关资料,需要的朋友可以参考下

代码如下:

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() 函数编译了一个正则表达式,代码如下:

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位密码,含有数字、大小写字母,及~!@中的特殊符号

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]) 检查大写英文字母;

测试:

    # 若不限制长度
    r = '^(?=.*?\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@]).*$'

总结 

到此这篇关于Python验证用户密码是否规范脚本的文章就介绍到这了,更多相关Python验证用户密码规范内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3实现字符串操作的实例代码

    python3实现字符串操作的实例代码

    这篇文章主要介绍了python3实现字符串操作的实例代码,需要的朋友可以参考下
    2019-04-04
  • 对Python强大的可变参数传递机制详解

    对Python强大的可变参数传递机制详解

    今天小编就为大家分享一篇对Python强大的可变参数传递机制详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python日期和时间完全指南与实战

    Python日期和时间完全指南与实战

    在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践,感兴趣的朋友一起看看吧
    2025-05-05
  • Pandas 处理DataFrame中的inf值实现

    Pandas 处理DataFrame中的inf值实现

    Inf 表示正无穷大或负无穷大,通常是在数学计算中产生的结果,本文主要介绍了Pandas 处理DataFrame中的inf值实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • Python中如何避免默认参数的陷阱

    Python中如何避免默认参数的陷阱

    在 Python 中,我们经常会使用函数的默认参数来简化代码,但你知道吗默认参数的行为有时可能会导致一些难以察觉的错误,下面小编就为大家介绍一下如何避免这样的错误吧
    2025-01-01
  • python实现对变位词的判断方法

    python实现对变位词的判断方法

    这篇文章主要为大家详细介绍了python实现对变位词的判断方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Pytorch中求模型准确率的两种方法小结

    Pytorch中求模型准确率的两种方法小结

    这篇文章主要介绍了Pytorch中求模型准确率的两种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Django路由匹配调试与排错指南分享

    Django路由匹配调试与排错指南分享

    这篇文章主要介绍了Django路由匹配调试与排错指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • 解决python爬虫中有中文的url问题

    解决python爬虫中有中文的url问题

    今天小编就为大家分享一篇解决python爬虫中有中文的url问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python实现人脸识别代码

    python实现人脸识别代码

    这篇文章主要介绍了python实现人脸识别代码,还是比较不错的,这里分享个大家,共需要的朋友参考。
    2017-11-11

最新评论