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验证用户密码规范内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python Queue模块详细介绍及实例

    Python Queue模块详细介绍及实例

    这篇文章主要介绍了Python Queue模块详细介绍及实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • 浅谈Keras的Sequential与PyTorch的Sequential的区别

    浅谈Keras的Sequential与PyTorch的Sequential的区别

    这篇文章主要介绍了浅谈Keras的Sequential与PyTorch的Sequential的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python中matplotlib条件背景颜色的实现

    python中matplotlib条件背景颜色的实现

    这篇文章主要给大家介绍了关于python中matplotlib条件背景颜色的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Pytorch 数据加载与数据预处理方式

    Pytorch 数据加载与数据预处理方式

    今天小编就为大家分享一篇Pytorch 数据加载与数据预处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • 详解如何在Pandas中删除常量列

    详解如何在Pandas中删除常量列

    常数列不提供可变性,这意味着它们无助于区分不同的数据点,在许多机器学习模型中,这些列会引入冗余或不相关的数据,从而对性能产生负面影响,因此,通常必须删除常量列,所以本文我们将探索如何使用Python识别和删除Pandas DataFrame中的常量列,需要的朋友可以参考下
    2025-03-03
  • Python使用XlsxWriter库操作Excel详解

    Python使用XlsxWriter库操作Excel详解

    XlsxWriter 是一个功能强大的 Python 模块,专门用于生成 Microsoft Excel 2007及以上版本的电子表格文件,本文主要为大家介绍了如何使用XlsxWriter库进行Excel基本操作,需要的可以参考下
    2023-11-11
  • Google开源的Python格式化工具YAPF的安装和使用教程

    Google开源的Python格式化工具YAPF的安装和使用教程

    Google的开发者文档中有一套Python的代码书写规范,而在GitHub上同样开源了一款名为YAPF的命令行程序用作Python的格式化,下面我们就来看下这款Google开源的Python格式化工具YAPF的安装和使用教程
    2016-05-05
  • Python3运算符常见用法分析

    Python3运算符常见用法分析

    这篇文章主要介绍了Python3运算符常见用法,结合实例形式分析了Python3算术运算符、逻辑运算符、比较运算符、位运算符等相关原理与操作技巧,需要的朋友可以参考下
    2020-02-02
  • python中Pycharm 输出中文或打印中文乱码现象的解决办法

    python中Pycharm 输出中文或打印中文乱码现象的解决办法

    本篇文章主要介绍了python中Pycharm 输出中文或打印中文乱码现象的解决办法 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Python爬虫实例扒取2345天气预报

    Python爬虫实例扒取2345天气预报

    本篇文章给大家详细分析了通过Python爬虫如何采集到2345的天气预报信息,有兴趣的朋友参考学习下吧。
    2018-03-03

最新评论