• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Proste generowanie haseł oraz ich uwierzytelnienie w programie Python

Object Storage Arubacloud
0 głosów
703 wizyt
pytanie zadane 25 maja 2020 w Python przez Kisielewsky Użytkownik (830 p.)

Drodzy ! 

W trakcie pisania swojego pomysłu natknąłem się na delikatną barierę przez którą nie mogę przejść dalej.
Chciałbym aby ten program wygenerował mi hasło za pomocą trzech losowych liczb 1-99. Następnie chciałbym wpisać to hasło aby przejść do dalszej części kodu, poniżej konkretny fragment kodu.

import random
my_number = random.randint(0,99)
guessA =-1
guessB =-1
guessC =-1
print("Hello User, This file is encrypted")
print("You have to guess a passoword, use a numbers between 1-99)


while guessA!=my_number:
    guessA=int(input())
    if guessA == my_number:
        print("You are right! It was",my_number ,"!", "Go next...")
    elif guessA>my_number:
        print("Sorry, my number is smaller than", guessA, "Try Again!")
    else:
         print("Sorry- my number is greater than",guessA, 'Try Again!')

# DOMYŚLAM SIĘ ŻE COŚ MUSI BYĆ TU #

while guessB!=my_number:
    quessB=int(input())
    if quessB == my_number:
        print("You got a second code fragment, now the last one")
    elif guessB>my_number:
        print("Sorry, my number is smaller than", guessB, "Try Again!")
    else:
         print("Sorry, my number is greater than",guessB, 'Try Again!')

while guessC!=my_number:
    quessC=int(input())
    if quessC == my_number:
        print("Now input the code")
    elif guessC>my_number:
        print("Sorry, my number is smaller than", guessC, "Try Again!")
    else:
         print("Sorry, my number is greater than",guessC, 'Try Again!')


... a dalej już tylko input.


Potrzebuje porady kogoś bardziej doświadczonego. To przyuczy mnie na przyszłość i pomoże w dalszym rozwoju!

Pozdrawiam ! 

1 odpowiedź

+1 głos
odpowiedź 26 maja 2020 przez VBService Ekspert (253,340 p.)
edycja 27 maja 2020 przez VBService

Sprawdź to. wink


from termcolor import colored # https://pypi.org/project/termcolor/
import random

secret_passord = "Tajneprzezpoufne" # Twoj tajny kod :-)
guess_secret_password = ""
block_access_after = 3 # Blokowanie dostepu po 3 nieudanych próbach pdania hasła
block_access_after_term_color = "" # kolorwanie ilosci prob

codeA = random.randint(1,99)
codeB = random.randint(1,99)
codeC = random.randint(1,99)

answer = ""
guessA = 0
guessB = 0
guessC = 0

print()
print("Hello User, This file is encrypted ",codeA," ",codeB," ",codeC) # to do testów
# print("Hello User, This file is encrypted")
print("You have to guess a passoword, use a numbers between 1-99")

while guessA != codeA:
      answer = input("First time: ")
      if answer.strip() == "": # Zabezpieczenie przed pusta linią lub spacją
         guessA = guessA
      else:
         if answer.isnumeric(): # Tylko cyfry
            guessA = int(answer)
         else:
            guessA = guessA

      if guessA == codeA:
         print("You are right! It was",codeA,"!","Go next ...")
      elif guessA > codeA:
         print("Sorry, my number is smaller than",guessA,"Try Again!")
      else:
         print("Sorry- my number is greater than",guessA,'Try Again!')

print()

while guessB != codeB:
      answer = input("Second time: ")
      if answer.strip() == "":
         guessB = guessB
      else:
         if answer.isnumeric():
            guessB = int(answer)
         else:
            guessB = guessB

      if guessB == codeB:
         print("You got a second code fragment, now the last one")
      elif guessB > codeB:
         print("Sorry, my number is smaller than",guessB,"Try Again!")
      else:
         print("Sorry, my number is greater than",guessB,'Try Again!')

print()

while guessC != codeC:
      answer = input("Third time: ")
      if answer.strip() == "":
         guessC = guessC
      else:
         if answer.isnumeric():
            guessC = int(answer)
         else:
            guessC = guessC

      if guessC == codeC:
         print("Now you will be asked to enter the secret code")
      elif guessC > codeC:
         print("Sorry, my number is smaller than",guessC,"Try Again!")
      else:
         print("Sorry, my number is greater than",guessC,'Try Again!')

print()

while guess_secret_password != secret_passord:
      if block_access_after == 3:  block_access_after_term_color = colored(block_access_after,"green",attrs=['bold'])
      if block_access_after == 2:  block_access_after_term_color = colored(block_access_after,"yellow",attrs=['bold'])
      if block_access_after == 1:  block_access_after_term_color = colored(block_access_after,"red",attrs=['bold'])

      answer = input("Enter code (" + block_access_after_term_color + "): ")
      if answer.strip() == "":
         guess_secret_password = ""
      else:
         guess_secret_password = answer

      if guess_secret_password == secret_passord:
         print("Correct secret password! Now you have access to secret data.")
         print()
      else:
         print("Incorrect type! Try again!")
         block_access_after -= 1
         if block_access_after == 0:
            print("Third time incorret code! Access not granted!")
            print()
            exit() # Natychmiastowe wylacznie wykonywania kodu

# Dalszy kod gdy dostep został przydzielony

Output

To było do testów: pokazane wylosowane liczby (można usunąć z kodu), puste wiersze, wiersze ze spacjami, litery.

Podobne pytania

+1 głos
1 odpowiedź 275 wizyt
pytanie zadane 27 października 2022 w Python przez jakubjordanek Obywatel (1,320 p.)
+1 głos
2 odpowiedzi 242 wizyt
0 głosów
1 odpowiedź 8,927 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...