mfx28

NAO VER POR FAVOR

Jun 5th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.57 KB | None | 0 0
  1. from sys import exit
  2. import re
  3.  
  4. #894574654
  5.  
  6. #Regra D1 - Apenas 1 maiuscula
  7. #Regra D3 - Deve usar 2 do set [! # - * + & % @ _]
  8. #Regra D4 - Duas letras minusculas seguidas
  9. #Regra D6 - Começar por uma Letra
  10.  
  11. #Não pode
  12. #Regra X2 - Começar por um caracter especial
  13. #Regra X3 - Usar caracteres fora do set [a-z A-Z 0-9 ' '] + [! # - * + & % @ _]
  14.  
  15. #Regra D1
  16. def ver_maius(input):
  17.     maius = 0
  18.     lista_maius = "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".split()
  19.     for char in input:
  20.         if char in lista_maius:
  21.             maius += 1
  22.     if maius > 1:
  23.         return False
  24.     else:
  25.         return True
  26.  
  27. #Regra D4
  28. def duasminus_seguidas(input):
  29.     checker = re.compile(r'([a-z][a-z])')
  30.     if re.search(checker, input):
  31.         return True
  32.     else:
  33.         return False
  34.  
  35. #Regra D6
  36. def comecar_letra(input):
  37.     lista_char = "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 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".split()
  38.     for char in input:
  39.         if char[0] in lista_char:
  40.             return True
  41.         else:
  42.             return False
  43.  
  44.         return False
  45.  
  46. #Regra X2
  47. def usar_especial(input):
  48.     especial = 0
  49.     lista_especial = "! # - * + & % @ _".split()
  50.     for char in input:
  51.         if char in lista_especial:
  52.             especial += 1
  53.         if especial <1:
  54.             return True  
  55.         else:
  56.             return False
  57.  
  58. def validarPW(input):
  59.     check_dict = {
  60.         'maiuscula': ver_maius(input),
  61.         '2minusculas': duasminus_seguidas(input),
  62.         'comecarletra': comecar_letra(input),
  63.         'especial': usar_especial(input),
  64.  
  65.     }
  66.     if ver_maius(input) & duasminus_seguidas(input) & comecar_letra(input) & usar_especial(input):
  67.         return True
  68.     else:
  69.         print ("Password errada! Não cumpre os seguintes requisitos:")
  70.         print("")
  71.         if check_dict['maiuscula'] == False:
  72.             print ("Apenas pode ter 1 letra maiuscula.")
  73.         if check_dict['2minusculas'] == False:
  74.             print ("A password necessita ter 2 minusculas seguidas.")
  75.         if check_dict['comecarletra'] == False:
  76.             print ("A password tem que começar por uma letra.")
  77.         if check_dict['especial'] == False:
  78.             print ("A password não pode começar por um caracter especial.")
  79.         print                  
  80.  
  81. while True:
  82.     password = input("Introduza a password: ")
  83.     print
  84.     if validarPW(password):
  85.         print ("A sua password cumpre com todos os requesitos.")
  86.         print
  87.         print ("Obrigado...")
  88.         print
  89.         exit(0)
Add Comment
Please, Sign In to add comment