在python中识别密码验证中的特殊字符

Posted

技术标签:

【中文标题】在python中识别密码验证中的特殊字符【英文标题】:Identifying special characters in password verification in python 【发布时间】:2017-12-27 22:19:23 【问题描述】:

我正在处理一项密码验证任务,其中程序不断要求用户输入有效密码,直到给出密码。我在检查输入字符串是否有特殊字符时遇到问题。目前,即使密码不是特殊字符,该程序也接受密码。此外,我想实现一个功能,在 3 次尝试失败后终止循环,但不确定在哪个循环中实现计数。 这是我的代码:

import re

specialCharacters = ['$', '#', '@', '!', '*']

def passwordValidation():
    while True:
         password = input("Please enter a password: ")
        if len(password) < 6:
            print("Your password must be at least 6 characters.")
        elif re.search('[0-9]',password) is None:
            print("Your password must have at least 1 number")
        elif re.search('[A-Z]',password) is None:
            print("Your password must have at least 1 uppercase letter.")
        elif re.search('specialCharacters',password) is None:
            print("Your password must have at least 1 special character ($, #, @, !, *)")
        else:
            print("Congratulations! Your password is valid.")
            break
passwordValidation()

【问题讨论】:

您的代码检查密码是否包含单词“specialCharacters”。首先,删除它周围的引号。二、将变量的值转换为正则表达式:specialCharacters = r"[\$#@!\*]" 【参考方案1】:

对于这么简单的事情没有必要使用正则表达式。怎么样:

elif not any(c in specialCharacters for c in password):

specialCharacters = set('$#@!*')
...
elif not specialCharacters.intersection(password):

【讨论】:

以上是关于在python中识别密码验证中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中测试正则表达式密码?

正则表达式验证密码必须由大小写字母、数字、特殊字符组成

如何转义 RODBC 连接字符串密码中的特殊字符

没有 JQuery 的 Javascript 特殊字符密码验证

在 C# 中具有流畅验证的正则表达式 - 如何在密码中不允许空格和某些特殊字符?

HTML 密码验证 - 需要一个强制的特殊字符,但不是数字(数字)