Moduli di crittografia Python
In questo capitolo imparerai in dettaglio i vari moduli di crittografia in Python.
Modulo di crittografia
Include tutte le ricette e le primitive e fornisce un'interfaccia di alto livello di codifica in Python. È possibile installare il modulo di crittografia utilizzando il seguente comando:
pip install cryptography
Codice
È possibile utilizzare il codice seguente per implementare il modulo di crittografia:
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher_suite = Fernet(key)
cipher_text = cipher_suite.encrypt("This example is used to demonstrate cryptography module")
plain_text = cipher_suite.decrypt(cipher_text)
Produzione
Il codice sopra riportato produce il seguente output:
Il codice qui fornito viene utilizzato per verificare la password e creare il suo hash. Include anche la logica per la verifica della password a scopo di autenticazione.
import uuid
import hashlib
def hash_password(password):
# uuid is used to generate a random number of the specified password
salt = uuid.uuid4().hex
return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt
def check_password(hashed_password, user_password):
password, salt = hashed_password.split(':')
return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()
new_pass = input('Please enter a password: ')
hashed_password = hash_password(new_pass)
print('The string to store in the db is: ' + hashed_password)
old_pass = input('Now please enter the password again to check: ')
if check_password(hashed_password, old_pass):
print('You entered the right password')
else:
print('Passwords do not match')
Produzione
Scenario 1 - Se hai inserito una password corretta, puoi trovare il seguente output -
Scenario 2 - Se inseriamo una password errata, puoi trovare il seguente output -
Spiegazione
Hashlibpacchetto viene utilizzato per memorizzare le password in un database. In questo programma,salt viene utilizzato che aggiunge una sequenza casuale alla stringa della password prima di implementare la funzione hash.