I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

I dati sono una risorsa vitale nel mondo digitale di oggi. Più di otto milioni di persone cadono vittime di hacker ogni anno e ogni giorno si verificano più di 2200 attacchi informatici. Con un tasso così allarmante di criminalità informatica, diventa una priorità utilizzare le migliori pratiche per proteggersi dagli hacker. Uno degli aspetti più importanti di qualsiasi account è la sua password.

Se un hacker compromette la tua password, può accedere alle tue informazioni personali e persino al tuo conto bancario in pochi minuti. Anche se sembra spaventoso, puoi imparare come proteggere le tue password usando le migliori pratiche creando il tuo programma Python per verificarne la forza.

Regole diverse per l'impostazione di password complesse

Alcune regole per password complesse che potresti considerare di implementare sono:

instagram viewer
  1. La password deve essere lunga almeno 12 caratteri. Più lunga è la password, minore è la possibilità che un attacco di forza bruta la comprometta.
  2. La password deve contenere una combinazione di lettere minuscole, lettere maiuscole, numeri e caratteri speciali.
  3. Evitare di ripetere i caratteri nella password.
  4. Non dovrebbe contenere dettagli personali come nomi, numeri di telefono o qualsiasi cosa che qualcuno possa facilmente indovinare.
  5. Non dovrebbe essere una parola comune del dizionario, anche se puoi usare parole in frasi di password più lunghe.
  6. La password non deve essere la stessa per più account. Puoi impostare un gestore di password per compilare automaticamente password diverse per vari siti senza ricordare ognuna di esse.

Ci sono diversi modi per crea una password indistruttibile che puoi ricordare. Alcuni di loro usano filastrocche, citazioni da film, gergo industriale e altro ancora.

Come controllare la forza della tua password usando Python

Puoi creare un programma per testare la sicurezza della password controllando le caratteristiche di cui sopra. Per questa build, avrai bisogno di due moduli: corda E collezioni.

Puoi anche usare il getpass module per nascondere una password mentre l'utente la inserisce. Questo aiuta a proteggere la tua password quando devi digitarla in pubblico. Per installare getpass nel tuo ambiente locale, apri un terminale e digita:

pippo installare getpass4

È possibile utilizzare la classe String per verificare se un carattere è una lettera, una cifra o un simbolo. Puoi utilizzare le raccolte per verificare se ci sono caratteri nella password che si ripetono.

Utilizzare la parola chiave def per definire una funzione denominata verifica_password_strength() e passa la password che otterrai come parametro.

Inizializza sei variabili: lower_alpha_count, upper_alpha_count, numero_conteggio, special_char_count, lunghezza, comune a zero. Questi verificheranno la presenza di un alfabeto minuscolo, alfabeto maiuscolo, cifre, caratteri speciali, lunghezza, ripetizione di caratteri in una password.

Passare la password ottenuta dall'utente al file elenco() funzione per convertirlo in un elenco di caratteri. Usando il ciclo for, itera su ogni carattere dell'elenco. Utilizzare l'istruzione if-else per verificare se il carattere è un alfabeto minuscolo, un alfabeto maiuscolo, un numero o un carattere speciale e aggiornare rispettivamente il conteggio.

Puoi presumere che qualsiasi altra cosa dall'alfabeto o dal numero sia un carattere speciale. Per ulteriori restrizioni, puoi memorizzare caratteri speciali come una stringa e verificare se il carattere della password è presente in essa. Inoltre, alcuni siti Web consentono di utilizzare spazi bianchi in una password. Puoi impostare una variabile diversa e incrementarla o considerarla nel conteggio dei caratteri speciali stesso.

importare corda
importare collezioni

defcheck_password_strength(parola d'ordine):
lower_alpha_count = upper_alpha_count = number_count = special_char_count = length = common = 0

per char in elenco(parola d'ordine):
Sechar in string.ascii_lowercase:
lower_alpha_count += 1
elif char in string.ascii_uppercase:
upper_alpha_count += 1
elif char in stringa.cifre:
numero_conteggio += 1
altro:
special_char_count += 1

Avrai bisogno di un elenco di password o di un database per verificare se la password dell'utente è comune. Puoi scaricare un elenco di un milione di password più popolari da Repository GitHub con credenziali comuni di SecLists.

Salva il file di testo con nome common_password_list.txt. Utilizzare l'istruzione with per eseguire la gestione delle eccezioni e aprire il file delle password in modalità di lettura. Usa il Leggere() funzione per ottenere il contenuto presente nel file e memorizzarlo in una variabile denominata content.

Se la password immessa dall'utente non è presente nell'elenco delle password comuni, incrementare il valore della variabile comune di uno.

conaprire("common_password_list.txt", 'R') COMEfile:
contenuto = file.read()

se la password non è nel contenuto:
comune += 1

Per verificare la lunghezza della password è sufficiente passarla al len() funzione e verificare se è maggiore o uguale a dodici. In tal caso, incrementare il valore della variabile di lunghezza.

Selen(parola d'ordine) >= 12:
lunghezza += 1

Per verificare la ripetizione dei caratteri nella password, utilizzare la sottoclasse Counter da Collections. Counter è una raccolta non ordinata di coppie chiave e valore in cui la chiave è l'elemento stesso e il valore è il conteggio dell'elemento.

Usa il metodo di comprensione dell'elenco per creare un elenco di caratteri ripetuti dal dizionario che ottieni utilizzando le raccolte. Scorri il dizionario e controlla se il conteggio del carattere è maggiore di uno. Se il conteggio è maggiore, aggiungilo a un elenco e memorizzalo in ripetuto.

 countOfWords = collezioni. Contatore (parola d'ordine)
ripetuto = [i for i in countOfWords se countOfWords[i] > 1]

Ora che hai i valori delle singole caratteristiche, inizializza una variabile chiamata forza a zero. Come suggerisce il nome, imposterai questa variabile per verificare la forza della password. Il sistema di punteggio è su sette, un punto per ogni inclusione di un carattere e caratteristica di una password complessa.

Controlla se il conteggio di alfabeto minuscolo, alfabeto maiuscolo, numeri, caratteri speciali è maggiore o uguale a uno e incrementa la forza di uno per ogni presenza. Allo stesso modo, controlla se la lunghezza e la variabile comune sono uguali a uno e se la lunghezza del carattere ripetuto è uguale a zero. Se true, incrementa il valore della variabile strength.

 forza = 0

se lower_alpha_count >= 1:
forza += 1

se upper_alpha_count >= 1:
forza += 1

se number_count >= 1:
forza += 1

se special_char_count >= 1:
forza += 1

se lunghezza == 1:
forza += 1

se comune == 1:
forza += 1

Selen(ripetuto)== 0:
forza += 1

Utilizzare la stringa multilinea (tre virgolette) per visualizzare più righe di testo in un'unica istruzione print. Utilizzare l'interpolazione Sring letterale o le stringhe f o per visualizzare il conteggio delle caratteristiche. Puoi raggiungere questo obiettivo scrivendo F all'inizio della stringa nell'istruzione print e racchiudere le variabili tra parentesi graffe. Si utilizza l'interpolazione di stringhe poiché il contenuto all'interno dell'istruzione print è una stringa, ma il valore delle variabili è un numero intero.

stampa(F"""La tua password contiene:- 
{lower_alpha_count} lettere minuscole
{upper_alpha_count} lettere maiuscole
{number_count} cifre
{special_char_count} caratteri speciali
{lunghezza} lunghezza
{comune} comune
{ripetuto} ripetuto
"Punteggio password: {forza}/7""")

Infine, utilizzare l'istruzione input per ricevere la password dall'utente e passarla a check_password_strength funzione. In base alla forza della password, il programma visualizzerà il punteggio insieme al conteggio delle caratteristiche presenti nella password.

parola d'ordine = input("Inserisci la password: ")
check_password_strength (password)

Output di Password Strength Checker

Inserendo una password complessa in base alle caratteristiche menzionate, il programma Python visualizza la forza come 7/7:

Inserendo una password debole e comune, il programma Python visualizza la forza come 1/7:

Password e sicurezza

Sebbene tu possa impostare la password più sicura di sempre, ci sono altri modi in cui un hacker può entrare nel tuo sistema. Il 95% degli attacchi informatici è il risultato di un errore umano. Uno dei metodi più comuni utilizzati dagli hacker è l'ingegneria sociale. L'hacker potrebbe inviarti collegamenti contraffatti a social media o siti Web di e-commerce che sembrano legittimi, ma compromettono la tua password se li utilizzi.

Per proteggerti da queste tecniche, assicurati di aprire solo collegamenti da una fonte attendibile e di inserire o archiviare solo informazioni importanti in modo sicuro.