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