# Introduzione

# Cosa vuol dire SHA-256?

Con il termine SHA (acronimo dell'inglese Secure Hash Algorithm) si indica una famiglia di cinque diverse funzioni crittografiche di hash sviluppate a partire dal 1993 dalla National Security Agency (NSA) e pubblicate dal NIST (opens new window) come standard federale dal governo degli USA.

Come ogni algoritmo di hash, l'SHA produce un message digest, o "impronta del messaggio", di lunghezza fissa partendo da un messaggio di lunghezza variabile.

Messaggio Variabile: abc
Hash Finale (SHA-256): ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

# In base a cosa un algoritmo é sicuro?

La sicurezza di un algoritmo di hash risiede nel fatto che la funzione non sia invertibile (non sia cioè possibile risalire al messaggio originale conoscendo solo questo dato)

Hash Finale (SHA-256): ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
Messaggio Variabile: ???????????????

# Come funziona SHA-256?

La Specifica NIST (opens new window) contiene una spiegazione precisa di SHA-256. Quello che segue è essenzialmente un riassunto visualizzato di quel documento.