Escriu per cercar…

Hash

Introducció

Farem servir el mòdul integrat hashlib per utilitzar diferents algorismes de hash a Python.

Comencem:

uv init hash

Ús

Hi ha un mètode constructor amb nom per a cada tipus de hash.

Tots retornen un objecte hash amb la mateixa interfície senzilla.

Per exemple, utilitza sha256() per crear un objecte de hash SHA-256. Ara pots alimentar aquest objecte amb valors de tipus bytes (normalment bytes) fent servir el mètode update.

En qualsevol moment li pots demanar el resum (digest) de la concatenació de les dades que li hagis passat fins ara amb els mètodes digest() o hexdigest().

python
import hashlib

m = hashlib.sha256()
m.update(b"El ")
m.update(b"Gattopardo")

print(m.digest())
print(m.hexdigest())

Per permetre el multithreading, el GIL de Python s’allibera mentre es calcula un hash al qual se li passen més de 2047 bytes de dades d’una sola vegada en el constructor o en el mètode .update.

El resultat és:

b'\x13\xdc\x9c3\xedc\xbe\x86\xd3\x9f\x99\xd8\xac\x1d\xb9=\xf6"\x13\x80\xbf\\K\x923\x8a\x8ee\xb6\x86BL'
13dc9c33ed63be86d39f99d8ac1db93df6221380bf5c4b92338a8e65b686424c

És el mateix resultat que tenim amb OpenSSL:

shell
echo -n "El Gattopardo" | openssl dgst -sha256
SHA2-256(stdin)= 13dc9c33ed63be86d39f99d8ac1db93df6221380bf5c4b92338a8e65b686424c

Estàs llegint una vista prèvia.

Inicia sessió amb Google per llegir la pàgina completa. Un compte de Google inclou 5 pàgines gratuïtes en total; l'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.

Inicia sessió