La crittografia delle password maschera le password degli utenti in modo che diventino difficili da indovinare o decodificare. È un passaggio essenziale nello sviluppo di software sicuro per la base degli utenti. Sia che tu ne stia costruendo uno con Flask o un altro framework Python leggero, non puoi ignorare questo passaggio. È qui che entra in gioco bcrypt.

Ti mostreremo come usare bcrypt per eseguire l'hashing della tua password in Python.

Come funziona bcrypt

Bcrypt è una libreria di hashing indipendente dalla lingua che offre la crittografia delle password univoche. Durante la crittografia della stringa, per impostazione predefinita vengono generati caratteri casuali aggiuntivi (sale) per rafforzare la sicurezza della password.

Facoltativamente, puoi anche specificare il numero di caratteri extra che desideri aggiungere a una stringa in entrata.

La libreria Thebcrypt non legge le stringhe non elaborate, solo il codice byte. Quindi, per iniziare, prima codificherai una stringa di password in entrata prima di passarla a bcrypt per la crittografia.

instagram viewer

La codifica non è la stessa cosa della crittografia. Garantisce solo che una stringa diventi leggibile dalla macchina prima che un algoritmo di crittografia possa mascherarla.

Crittografare una password in Python con bcrypt

La crittografia della password bcrypt è facile con Python. Ci concentreremo su come farlo senza utilizzare un framework. Ma non preoccuparti, segue lo stesso processo nei framework una volta che sai come memorizzare gli input dei tuoi utenti e leggerli dal database.

Installa e configura bcrypt

Se non l'hai già fatto, attivare un ambiente virtuale Python nella radice del tuo progetto. Quindi installa bcrypt usando pip:

pip install bcrpyt

Inizia a crittografare le password

Una volta installato, vediamo come crittografare una stringa utilizzando bcrypt:

# Importa bcrypt:
importa bcrypt
password = "mypasswordstring"
# Codifica la password in un codice di byte utf-8 leggibile:
password = password.encode('utf-8')
# Hash la password codificata e genera un salt:
hashPassword = bcrypt.hashpw (password, bcrypt.gensalt())
stampa (hashedPassword)

Quando tu esegui il codice Python sopra, stampa una stringa di byte crittografata. L'output, tuttavia, cambia ogni volta che si esegue lo script. Questo è il modo in cui bcrypt garantisce che ogni utente disponga di una password crittografata in modo univoco.

Questo è per la crittografia della password, tra l'altro.

Come confrontare e confermare le password con bcrypt

Cosa succede se si desidera memorizzare la password con hash e confermare in seguito che corrisponda alla password fornita dall'utente durante l'autenticazione?

Questo è facile. È sufficiente confrontare la password di autenticazione con quella archiviata nel database (o in memoria in questo caso).

E poiché bcrypt legge solo stringhe di byte, dovrai anche codificare la password di autenticazione prima di confrontarla con quella nel database. In sostanza, controllerai un input di autenticazione codificato con la password codificata con hash già memorizzata nel tuo database.

Usando input fittizi di Python, vediamo come funziona in pratica:

importa bcrypt
#salva la tua password:
password = str (input ("inserisci password: "))
# Codifica la password memorizzata:
password = password.encode('utf-8')
# Cripta la password memorizzata:
hash = bcrypt.hashpw (password, bcrypt.gensalt (10))
# Crea un campo di inserimento della password di autenticazione per verificare se un utente inserisce la password corretta:
check = str (input ("verifica password: "))
# Codifica anche la password di autenticazione:
check = check.encode('utf-8')
# Usa le condizioni per confrontare la password di autenticazione con quella memorizzata:
if bcrypt.checkpw (check, hash):
print("accesso riuscito")
altro:
print("password errata")

Il codice sopra ti chiede di inserire una nuova password quando lo esegui. Python lo memorizza in memoria. Fornirai quindi la stessa password (conosciuta solo a te) nel campo di autenticazione.

Python stampa un messaggio di successo se la password confrontata corrisponde a quella crittografata precedentemente memorizzata. Altrimenti, emette il messaggio di errore avvolto nel altro dichiarazione:

L'intero concetto è lo stesso di memorizzare una password in un database durante la registrazione e fornirla successivamente durante l'autenticazione.

Aumenta la crittografia con bcrypt

Sebbene abbiamo solo dimostrato come funziona bcrypt memorizzando le password crittografate nella semplice memoria corta di Python, il suo utilizzo finale è nelle applicazioni di base utente della vita reale.

Tuttavia, questo tutorial mostra i modi fondamentali per strutturare il codice per raggiungere questo obiettivo, anche in scenari di vita reale. Ad esempio, se stai usando Flask, puoi sostituire gli input con moduli web separati per servire i campi di registrazione e autenticazione. E, naturalmente, memorizzerai le password crittografate in un database reale e le leggerai durante il confronto delle password.

12 termini di crittografia di base che tutti dovrebbero conoscere ormai

Tutti parlano di crittografia, ma ti ritrovi perso o confuso? Ecco alcuni termini chiave di crittografia che devi conoscere.

Leggi Avanti

CondividereTweetE-mail
Argomenti correlati
  • Programmazione
  • Pitone
  • Programmazione
  • Sicurezza
Circa l'autore
Idowu Omisola (116 articoli pubblicati)

Idowu è appassionato di qualsiasi tecnologia intelligente e produttività. Nel tempo libero gioca con la programmazione e quando si annoia passa alla scacchiera, ma ama anche staccare ogni tanto dalla routine. La sua passione per mostrare alle persone la tecnologia moderna lo motiva a scrivere di più.

Altro da Idowu Omisola

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti