Come creare un generatore di password usando Python?
Pubblicato: 2021-08-20La sicurezza è una delle parti più cruciali della nostra vita. L'importanza della sicurezza sta aumentando di giorno in giorno poiché la maggior parte delle cose va online. Le password vengono alla luce quando si parla di sicurezza.
In questo articolo, creeremo un generatore di password che ci aiuta a generare rapidamente password casuali e complesse.
Perché abbiamo bisogno di un generatore di password?
Perché non possiamo pensare a diversi modelli di password all'istante.
Ma non è lo stesso caso con i computer. I computer possono generare password casuali e complesse in base alle nostre personalizzazioni in pochi secondi. Sono disponibili molti generatori di password.
Possiamo crearne uno nostro con le personalizzazioni che ci piacciono?
Sì, possiamo sicuramente crearne uno. E qui ti mostreremo come farlo.
Creiamo un generatore di password.
Generatore di password
La cosa migliore della creazione del nostro generatore di password è che possiamo personalizzarlo a nostro piacimento.
Innanzitutto, creeremo un generatore di password che richiede la lunghezza della password e genera una password casuale contenente cifre, alfabeti e caratteri speciali.
Successivamente, lo miglioreremo chiedendo il numero di ogni tipo di carattere, come il numero di cifre, alfabeti e caratteri speciali.
Quindi, senza ulteriori indugi, vediamo i passaggi per creare un generatore di password usando Python.
Passi
- Memorizza tutti i caratteri come un elenco. Possiamo usare il modulo string di Python o digitarli tutti.
- Chiedi all'utente di inserire la lunghezza della password.
- Mescola i caratteri usando il metodo
random.shuffle. - Inizializzare un elenco vuoto per memorizzare la password.
- Scrivi un ciclo che itera la
lengthtempi.- Scegli un personaggio a caso tra tutti i personaggi usando il metodo
random.choice. - Aggiungi il carattere casuale alla password.
- Scegli un personaggio a caso tra tutti i personaggi usando il metodo
- Mescola l'elenco delle password risultante per renderlo più casuale.
- Converti l'elenco delle password in una stringa utilizzando il metodo
join. - Stampa la password.
Segui i passaggi precedenti e prova a scrivere il codice. Non preoccuparti, anche se non sei in grado di scrivere il codice. Controlla il codice qui sotto.
Codice
import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()Il codice di cui sopra è autoesplicativo. Abbiamo appena seguito i passaggi descritti per scrivere il codice. Quindi, non troverai alcun problema nella comprensione del codice se leggi i passaggi.
Ora esegui il codice e genera una password. Un esempio di output sarà il seguente.
Enter password length: 10 d&amIzK%d)Osservare la password nell'output sopra. C'è qualche cifra? No. Perché non c'è alcuna garanzia che il programma includa cifre.
Successivamente, cerchiamo di garantire che il programma includa cifre e caratteri speciali chiedendo all'utente di inserire il numero di cifre, alfabeti e caratteri speciali desiderati.

Quando l'utente immette il numero di caratteri per ogni tipo, il programma includerà il rispettivo numero di tipi di carattere nella password.
Vediamo il codice che accetta il numero di caratteri per ogni tipo e genera la password.
import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()Quindi, qual è la differenza tra il codice precedente e questo codice?
- Abbiamo scritto loop separati per ogni tipo di carattere per aggiungerli alla password.
- Esistono due controlli condizionali per convalidare il conteggio totale dei caratteri con la lunghezza della password.
Abbiamo aggiunto del codice extra. Ma il modello è simile al codice precedente. Quindi, non troverai alcuna difficoltà a capirlo.
Ora è il momento di eseguire e controllare l'output. Guarda la seguente esecuzione di prova.
Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1Se vedi la password generata questa volta, ha il numero minimo di caratteri che l'utente desidera. E il programma ha incluso altri 2 caratteri casuali per rendere la lunghezza della password uguale all'input dell'utente.
evviva! abbiamo un generatore di password complesse completo.
Conclusione
Abbiamo visto come creare da zero un generatore di password. Possiamo aggiungere più funzionalità ad esso? Sì, possiamo aggiungerne quante ne vogliamo. Ma assicurati che la password risultante sia abbastanza forte.
Genera le password dal codice e usale per il tuo prossimo account online.
Successivamente, scopri come creare un gioco tic-tac-toe in Python.
Buona codifica!
