密码验证-Python
因此,我必须创建代码来验证密码是否:密码验证-Python,python,validation,passwords,Python,Validation,Passwords,因此,我必须创建代码来验证密码是否: 长度至少为8个字符 包含至少1个数字 包含至少1个大写字母 代码如下: def validate(): while True: password = input("Enter a password: ") if len(password) < 8: print("Make sure your password is at lest 8 letters") elif no
- 长度至少为8个字符
- 包含至少1个数字
- 包含至少1个大写字母
def validate():
while True:
password = input("Enter a password: ")
if len(password) < 8:
print("Make sure your password is at lest 8 letters")
elif not password.isdigit():
print("Make sure your password has a number in it")
elif not password.isupper():
print("Make sure your password has a capital letter in it")
else:
print("Your password seems fine")
break
validate()
def validate():
尽管如此:
密码=输入(“输入密码:”)
如果len(密码)<8:
打印(“确保您的密码至少为8个字母”)
elif不是密码。isdigit():
打印(“确保密码中有数字”)
elif不是密码。isupper():
打印(“确保密码中有大写字母”)
其他:
打印(“您的密码似乎很好”)
打破
验证()
我不知道怎么回事,但当我输入一个有数字的密码时,它总是告诉我需要一个有数字的密码。有解决方案吗?不检查密码是否包含数字,它根据以下内容检查所有字符:
str.isdigit():如果字符串中的所有字符都是数字,则返回true
至少有一个字符,否则为false
不检查密码是否包含大写字母,它会根据以下内容检查所有字符:
str.isupper():如果字符串中的所有大小写字符均为
大写,并且至少有一个大小写字符,否则为false
有关解决方案,请在查看问题和接受的答案
您可以构建自己的hasNumbers()
-函数(从链接问题中复制):
和一个hasUpper()
-函数:
def hasUpper(inputString):
return any(char.isupper() for char in inputString)
不检查密码是否包含数字,它根据以下内容检查所有字符:
str.isdigit():如果字符串中的所有字符都是数字,则返回true
至少有一个字符,否则为false
不检查密码是否包含大写字母,它会根据以下内容检查所有字符:
str.isupper():如果字符串中的所有大小写字符均为
大写,并且至少有一个大小写字符,否则为false
有关解决方案,请在查看问题和接受的答案
您可以构建自己的hasNumbers()
-函数(从链接问题中复制):
和一个hasUpper()
-函数:
def hasUpper(inputString):
return any(char.isupper() for char in inputString)
- ,如果字符串包含数字,则不是 如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false
- ,如果字符串至少包含一个大写字符,则不是。 如果字符串中所有大小写字符均为大写且至少有一个大小写字符,则返回true,否则返回false
如果密码中至少有一位数字,则返回Trueany([x.isdigit()表示密码中的x])
将在至少有一个字符被视为大写时返回Trueany([x.isupper()表示密码中的x])
- ,如果字符串包含数字,则不是 如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false
- ,如果字符串至少包含一个大写字符,则不是。 如果字符串中所有大小写字符均为大写且至少有一个大小写字符,则返回true,否则返回false
如果密码中至少有一位数字,则返回Trueany([x.isdigit()表示密码中的x])
将在至少有一个字符被视为大写时返回Trueany([x.isupper()表示密码中的x])
re.search(r"[A-Z]", password)
检查大写字母
re.search(r"[0-9]", password)
检查密码中的数字。也许您可以使用正则表达式:
re.search(r"[A-Z]", password)
#!/usr/bin/python3
def passwd_check(passwd):
"""Check if the password is valid.
This function checks the following conditions
if its length is greater than 6 and less than 8
if it has at least one uppercase letter
if it has at least one lowercase letter
if it has at least one numeral
if it has any of the required special symbols
"""
SpecialSym=['$','@','#']
return_val=True
if len(passwd) < 6:
print('the length of password should be at least 6 char long')
return_val=False
if len(passwd) > 8:
print('the length of password should be not be greater than 8')
return_val=False
if not any(char.isdigit() for char in passwd):
print('the password should have at least one numeral')
return_val=False
if not any(char.isupper() for char in passwd):
print('the password should have at least one uppercase letter')
return_val=False
if not any(char.islower() for char in passwd):
print('the password should have at least one lowercase letter')
return_val=False
if not any(char in SpecialSym for char in passwd):
print('the password should have at least one of the symbols $@#')
return_val=False
if return_val:
print('Ok')
return return_val
print(passwd_check.__doc__)
passwd = input('enter the password : ')
print(passwd_check(passwd))
检查大写字母
re.search(r"[0-9]", password)
检查密码中的数字。您可以对正则表达式使用
re
模块
#!/usr/bin/python3
def passwd_check(passwd):
"""Check if the password is valid.
This function checks the following conditions
if its length is greater than 6 and less than 8
if it has at least one uppercase letter
if it has at least one lowercase letter
if it has at least one numeral
if it has any of the required special symbols
"""
SpecialSym=['$','@','#']
return_val=True
if len(passwd) < 6:
print('the length of password should be at least 6 char long')
return_val=False
if len(passwd) > 8:
print('the length of password should be not be greater than 8')
return_val=False
if not any(char.isdigit() for char in passwd):
print('the password should have at least one numeral')
return_val=False
if not any(char.isupper() for char in passwd):
print('the password should have at least one uppercase letter')
return_val=False
if not any(char.islower() for char in passwd):
print('the password should have at least one lowercase letter')
return_val=False
if not any(char in SpecialSym for char in passwd):
print('the password should have at least one of the symbols $@#')
return_val=False
if return_val:
print('Ok')
return return_val
print(passwd_check.__doc__)
passwd = input('enter the password : ')
print(passwd_check(passwd))
使用它,您的代码将如下所示:
import re
def validate():
while True:
password = raw_input("Enter a password: ")
if len(password) < 8:
print("Make sure your password is at lest 8 letters")
elif re.search('[0-9]',password) is None:
print("Make sure your password has a number in it")
elif re.search('[A-Z]',password) is None:
print("Make sure your password has a capital letter in it")
else:
print("Your password seems fine")
break
validate()
重新导入
def validate():
尽管如此:
密码=原始输入(“输入密码:”)
如果len(密码)<8:
打印(“确保您的密码至少为8个字母”)
elif重新搜索(“[0-9]”,密码)为无:
打印(“确保密码中有数字”)
elif重新搜索(“[A-Z]”,密码)为无:
打印(“确保密码中有大写字母”)
其他:
打印(“您的密码似乎很好”)
打破
验证()
您可以对正则表达式使用re
模块
使用它,您的代码将如下所示:
import re
def validate():
while True:
password = raw_input("Enter a password: ")
if len(password) < 8:
print("Make sure your password is at lest 8 letters")
elif re.search('[0-9]',password) is None:
print("Make sure your password has a number in it")
elif re.search('[A-Z]',password) is None:
print("Make sure your password has a capital letter in it")
else:
print("Your password seems fine")
break
validate()
重新导入
def validate():
尽管如此:
密码=原始输入(“输入密码:”)
如果len(密码)<8:
打印(“确保您的密码至少为8个字母”)
elif重新搜索(“[0-9]”,密码)为无:
打印(“确保密码中有数字”)
elif重新搜索(“[A-Z]”,密码)为无:
打印(“确保密码中有大写字母”)
其他:
打印(“您的密码似乎很好”)
打破
验证()
此代码将通过以下方式验证您的密码:
您正在对整个密码字符串对象而不是字符串的每个字符检查isdigit和isupper方法。以下是一个功能,用于检查密码是否满足您的特定要求。它不使用任何正则表达式。它还打印输入密码的所有缺陷
#!/usr/bin/python3
def passwd_check(passwd):
"""Check if the password is valid.
This function checks the following conditions
if its length is greater than 6 and less than 8
if it has at least one uppercase letter
if it has at least one lowercase letter
if it has at least one numeral
if it has any of the required special symbols
"""
SpecialSym=['$','@','#']
return_val=True
if len(passwd) < 6:
print('the length of password should be at least 6 char long')
return_val=False
if len(passwd) > 8:
print('the length of password should be not be greater than 8')
return_val=False
if not any(char.isdigit() for char in passwd):
print('the password should have at least one numeral')
return_val=False
if not any(char.isupper() for char in passwd):
print('the password should have at least one uppercase letter')
return_val=False
if not any(char.islower() for char in passwd):
print('the password should have at least one lowercase letter')
return_val=False
if not any(char in SpecialSym for char in passwd):
print('the password should have at least one of the symbols $@#')
return_val=False
if return_val:
print('Ok')
return return_val
print(passwd_check.__doc__)
passwd = input('enter the password : ')
print(passwd_check(passwd))
#/
from string import digits, punctuation
def validate_password(p):
if not 5 <= len(p) <= 10:
return False
if not any(c in digits for c in p):
return False
if not any(c in punctuation for c in p):
return False
if ' ' in p:
return False
return True
for p in ('DJjkdklkl', 'John Doe'
, '$kldfjfd9'):
print(p, ': ', ('invalid', 'valid')[validate_password(p)], sep='')
class Password:
def __init__(self, password):
self.password = password
def validate(self):
vals = {
'Password must contain an uppercase letter.': lambda s: any(x.isupper() for x in s),
'Password must contain a lowercase letter.': lambda s: any(x.islower() for x in s),
'Password must contain a digit.': lambda s: any(x.isdigit() for x in s),
'Password must be at least 8 characters.': lambda s: len(s) >= 8,
'Password cannot contain white spaces.': lambda s: not any(x.isspace() for x in s)
}
valid = True
for n, val in vals.items():
if not val(self.password):
valid = False
return n
return valid
def compare(self, password2):
if self.password == password2:
return True
if __name__ == '__main__':
input_password = input('Insert Password: ')
input_password2 = input('Repeat Password: ')
p = Password(input_password)
if p.validate() is True:
if p.compare(input_password2) is True:
print('OK')
else:
print(p.validate())
uppercase_letter = ['A', 'B','C', 'D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z']
number = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
import re
info ={}
while True:
user_name = input('write your username: ')
if len(user_name) > 15:
print('username is too long(must be less than 16 character)')
elif len(user_name) < 3 :
print('username is short(must be more than 2 character)')
else:
print('your username is', user_name)
break
while True:
password= input('write your password: ')
if len(password) < 8 :
print('password is short(must be more than 7 character)')
elif len(password) > 20:
print('password is too long(must be less than 21 character)')
elif re.search(str(uppercase_letter), password ) is None :
print('Make sure your password has at least one uppercase letter in it')
elif re.search(str(number), password) is None :
print('Make sure your password has at least number in it')
else:
print('your password is', password)
break
info['user name'] = user_name
info['password'] = password
print(info)
from string import punctuation as p
s = 'Vishwasrocks@23' #or user input is welcome
lis = [0, 0, 0, 0]
for i in s:
if i.isupper():
lis[0] = 1
elif i.islower():
lis[1] = 1
elif i in p:
lis[2] = 1
elif i.isdigit():
lis[3] = 1
print('Valid') if 0 not in lis and len(s) > 8 else print('Invalid')