Python: creare l'hash di una stringa

Python: creare l'hash di una stringa

In questo articolo vedremo come creare l'hash di una stringa usando le librerie core di Python.

Possiamo utilizzare la libreria hashlib specificando il tipo di algoritmo e ottenendo la versione esadecimale dell'hash dopo aver codificato la stringa in byte.

import hashlib

def encode_str_as_hash(str_to_encode='', hash_alg='sha256'):
    if len(str_to_encode) == 0 or str_to_encode.isspace():
        return str_to_encode
    if hash_alg not in hashlib.algorithms_available:
        return str_to_encode
    try:
        h = hashlib.new(hash_alg)
        h.update(str_to_encode.encode())
        return h.hexdigest()
     except TypeError:
        return str_to_encode

Se la stringa è valida, ossia non è vuota e non è composta solo da spazi e se l'algoritmo scelto è supportato dalla libreria hashlib, viene generato l'hash della stringa e restituito in formato esadecimale.

In caso di eccezione o di valori non validi, viene restituita la stringa originaria.

Esempio d'uso:

print(encode_str_as_hash('Test'))

Output:

532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25
Torna su