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.