【Python中如何实现密码验证(两种方法)】让我们以字母数字字符和特殊字符的组合形式输入密码, 并借助一些条件来检查密码是否有效。
有效密码的条件是:
- 应该至少有一个数字。
- 应至少包含一个大写字母和一个小写字母。
- 应该至少有一个特殊符号。
- 长度应在6到20个字符之间。
Input :Geek12#
Output : Password is valid.Input :asd123
Output : Invalid Password !!
我们可以使用多种方式来检查给定的字符串是否符合密码要求。
方法1:天真的方法(不使用正则表达式)。
# Password validation in Python
# using naive method# Function to validate the password
def password_check(passwd):SpecialSym = [ '$' , '@' , '#' , '%' ]
val = Trueif len (passwd) <
6 :
print ( 'length should be at least 6' )
val = Falseif len (passwd) >
20 :
print ( 'length should be not be greater than 8' )
val = Falseif not any (char.isdigit() for char in passwd):
print ( 'Password should have at least one numeral' )
val = Falseif not any (char.isupper() for char in passwd):
print ( 'Password should have at least one uppercase letter' )
val = Falseif not any (char.islower() for char in passwd):
print ( 'Password should have at least one lowercase letter' )
val = Falseif not any (char in SpecialSym for char in passwd):
print ( 'Password should have at least one of the symbols $@#' )
val = False
if val:
return val# Main method
def main():
passwd = 'Geek12@'if (password_check(passwd)):
print ( "Password is valid" )
else :
print ( "Invalid Password !!" )# Driver Code
if __name__ = = '__main__' :
main()
输出如下:
Password is valid
此代码使用布尔函数检查是否满足所有条件。我们看到, 尽管代码的复杂性是基本的, 但长度却相当可观。
方法2:使用正则表达式
compile方法()在Regex模块中,该方法创建一个Regex对象, 从而可以将regex函数执行到拍变量。然后我们检查是否由拍后跟输入字符串密码。如果是这样, 则搜索方法返回true, 这将使密码有效。
# importing re library
import redef main():
passwd = 'Geek12@'
reg = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&
])[A-Za-z\d@$!#%*?&
]{6, 20}$"# compiling regex
pat = re. compile (reg)# searching regex
mat = re.search(pat, passwd)# validating conditions
if mat:
print ( "Password is valid." )
else :
print ( "Password invalid !!" )# Driver Code
if __name__ = = '__main__' :
main()
输出如下:
Password is valid.
首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。
推荐阅读
- Python如何使用多处理(进程间通信)(简介和用法指南|S2)
- 如何使用递归实现打印给定总和的所有子集()
- 图的深度优先搜索或DFS算法如何实现()
- C/C++中的函数如何使用(通俗解释和代码示例)
- jQuery如何使用bind()方法(代码示例)
- 移除最小数量的元素,使两个数组中不存在公共元素
- 苏格兰皇家银行面试经验(校园)
- win10正式版安装最新推荐
- 本图文详细教程教你如何安装windows10的镜像