使用Python自动化无聊的东西 - 第7章:强密码检测

时间:2017-07-21 02:34:44

标签: python regex

我现在正在研究本书中的练习项目,并希望得到一些关于下面项目的建议,以了解我是否正在进行中。

编写一个使用正则表达式的函数,以确保传递的密码字符串很强。强密码定义为长度至少为八个字符,包含大写和小写字符,并且至少有一个数字的密码。您可能需要针对多个正则表达式模式测试字符串以验证其强度。

我提出了以下但不太确定从哪里开始。感谢是否有人可以提供帮助!提前谢谢!

#! /usr/bin/env python3
#chapter_7.py - Detects strong passwords.

import pyperclip, re

strong_pwd_regex = re.compile(r'(A-Za-z)(0-9)+{8,}')

password = str(pyperclip())
matches = []

for groups in strong_pwd_regex.findall(password):
    if len(matches) < 8:
        print('Password needs to be at least 8 characters long.')

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

此正则表达式将强制执行以下规则:

  • 至少一个大写英文字母,(?=.*?[A-Z]
  • 至少一个小写英文字母,(?=.*?[a-z]
  • 至少一个数字,(?=.*?[0-9]
  • 至少一个特殊字符,(?=.*?[#?!@$%^&*-]
  • 最小长度为8个。{8,}(带锚)