密码验证-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

您需要的是使用:

  • any([x.isdigit()表示密码中的x])
    如果密码中至少有一位数字,则返回True
  • any([x.isupper()表示密码中的x])
    将在至少有一个字符被视为大写时返回True
      • ,如果字符串包含数字,则不是 如果字符串中的所有字符都是数字且至少有一个字符,则返回true,否则返回false

      • ,如果字符串至少包含一个大写字符,则不是。 如果字符串中所有大小写字符均为大写且至少有一个大小写字符,则返回true,否则返回false

      您需要的是使用:

      • any([x.isdigit()表示密码中的x])
        如果密码中至少有一位数字,则返回True
      • any([x.isupper()表示密码中的x])
        将在至少有一个字符被视为大写时返回True

      也许您可以使用正则表达式:

      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]”,密码)为无:
      打印(“确保密码中有大写字母”)
      其他:
      打印(“您的密码似乎很好”)
      打破
      验证()
      
      此代码将通过以下方式验证您的密码:

    • 最小长度为6,最大长度为20
    • 至少包括一个数字
    • 至少有一个大写字母和一个小写字母
    • 至少有一个特殊的字符
    • 此代码将通过以下方式验证您的密码:

    • 最小长度为6,最大长度为20
    • 至少包括一个数字
    • 至少有一个大写字母和一个小写字母
    • 至少有一个特殊的字符

    • 您正在对整个密码字符串对象而不是字符串的每个字符检查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')