需要创建一个函数来验证我的密码强度,因为第三个问题有问题。
3.如果密码的第一个和最后一个字符是字母,那么密码的第一个字符必须是一个与密码的最后一个字母不同的字母,不管情况如何。例如,第一个字符是a,所以最后一个字符不能是A或a。
def validate_password(first_pwd, second_pwd):
#Checks if password are same
if first_pwd == second_pwd:
#Checks if password is greater or equal to 8 characters
if len(first_pwd) >= 8:
#Checks if last and first character are alphabetic
if first_pwd[0].islower() and first_pwd[-1].isupper() or first_pwd[0].isupper() and first_pwd[-1].islower():
return True
else:
return False
print(validate_password("Abcd1234","Abcd1234"))我如何忽略密码末尾的数字,看看最近的字母,也就是d。
发布于 2018-11-13 07:51:34
你可以试着用正则表达式来解决它。这将检查一个字母的第一次出现是否等于(不敏感地)信的最后一次出现。
如果您真的只想检查字符串的第一个字符或最后一个字符,就必须修改regex或if子句。
您还可以进行额外检查,查看pwd中的最后一个字符是否等于下面列表字符中的最后一个字母。
import re
def validate_password(first_pwd, second_pwd):
# Checks if password are same
if first_pwd == second_pwd:
# Checks if password is greater or equal to 8 characters
if len(first_pwd) >= 8:
# get only the letters of the password
chars = re.findall(r'[A-Za-z]', first_pwd)
# compare first and last occurrence of letters in pwd
if chars[0].islower() and chars[-1].isupper() or chars[0].isupper() and chars[-1].islower():
return True
else:
return False
print(validate_password("Abcd1234","Abcd1234"))我也认为,这可能只够检查一下
if chars[0].upper() == chars[-1].upper(): # optional if needed: and first_pwd[-1].upper() == chars[-1].upper()发布于 2018-11-13 07:53:52
我不是专家,但作为一个试图在python上不断改进的人,建议写单词而不是使用缩写。
此外,只有在密码与上一次检查相同的情况下,才会检查用于验证密码强度的rother函数,因此,请确保第一次检查中的长度大于8。
值得注意的是:
islower,isalpha 这里
具有较低的() 这里
我推荐youtubing,因为这是个很难的概念,海事组织
import re
def validate_password(first_password, second_password):
if first_password == second_password:
# Cannot be the previous password
return False
letters = "".join(re.findall("[a-zA-Z]+", first_password))
first_letter = letters[0]
last_letter = letters[-1]
if len(first_password) >= 8:
if first_letter.lower() == last_letter.lower():
# First character can't be the same as last character
return False
else:
# Every test passed
return True
else:
# password too short
return False
print(validate_password("Abcd1234","Abcd1234"))https://stackoverflow.com/questions/53275777
复制相似问题