This article has been translated from English to Italian.
Qual è lo scopo dell'hashing?
Lo scopo principale dell'hashing è verificare l'integrità di un dato.
Poiché l'hash generato è UNICO per i dati di input, funge da"impronta digitale"univoca dei dati di input.
Questo rende l'hash utile per verificare l'integrità dei dati inviati attraverso canali di comunicazione non sicuri come Internet. Integrità dei dati significa semplicemente che i dati non sono stati alterati in modo non approvato.
Il valore hash dei dati ricevuti può essere confrontato con il valore hash dei dati prima che fossero inviati per determinare se i dati sono stati alterati.
Se pubblico sia il messaggio che il valore hash che ho generato da esso, puoi generare un valore hash dal messaggio che hai ricevuto e confrontare i valori hash.
Facciamo un esempio molto semplice: diciamo che stiamo per incontrarci per pranzo e, proprio prima di uscire, mi ricordo dell'ultima volta che siamo stati insieme...

Anche se la tua personalità era davvero piacevole, il tuo odore non lo era affatto. 😬
Quindi voglio inviarti un messaggio:"Per favore, mettiti il deodorante".
Ma prima di inviarlo, lo sottopongo a una funzione hash (SHA-256). L'hash è:
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Ti invio prima questo hash.*
POI ti mando il vero messaggio di testo.
Quando ricevi il mio messaggio, pensi: "Ma che cazzo? Mi ha davvero detto questo? O il messaggio è stato intercettato durante il transito e il messaggio originale è stato alterato?"

Quindi esegui la stessa funzione hash sul messaggio.
33ebb528eab107766343d0ac591952bb68ee959d45b7a8b399628e662f3bc1ef
Poi confronti il tuo hash con l'hash che precede il messaggio di testo.
Se entrambi i valori hash sono uguali, allora questo dimostra che:
- Il messaggio è stato inviato correttamente.
- Che le tue ascelle puzzano davvero!
- Il messaggio non è stato deliberatamente alterato da qualcuno tra il momento in cui te l'ho inviato e quello in cui l'hai ricevuto.
Naturalmente, nel mondo reale, sono i nostri computer a fare tutto questo per noi.
E speriamo che le tue ascelle continuino a profumare di fresco. 😅
*Tecnicamente, prima di inviarti l'hash, dovrebbe essere protetto in qualche modo, ma volevo mantenere l'esempio semplice. Come l'hash rimanga protetto durante il transito sarà trattato in una lezione successiva.
Esempio reale di hashing: password online
Questo potrebbe sorprenderti, ma probabilmente incontri l'hashing nella tua vita quotidiana... ogni volta che accedi per controllare la tua posta elettronica. 📧

Quando crei un indirizzo e-mail e una password, il tuo provider di posta elettronica probabilmente non salva la tua password effettiva.
Invece, il tuo provider di posta elettronica esegue la password attraverso una funzione hash e salva l'hash della tua password.
Ogni volta che tenti di accedere al tuo account di posta elettronica, il tuo provider di posta elettronica esegue l'hash della password che TU inserisci e confronta questo hash con l'hash che ha salvato.
Solo quando i due hash corrispondono, sei autorizzato ad accedere alla tua e-mail.
Vediamo perché NON salvano la tua password effettiva...
Se le password reali vengono memorizzate e gli hacker riescono a entrare nel loro sistema, possono rubarle. Questo non è sicuramente un bene per gli utenti che usano la stessa password per più siti web!
Una soluzione è quella di codificare la password...
Cifrando una password, l'azienda protegge le informazioni dell'utente. Anche se un hacker riesce a penetrare nel sistema, non avrà accesso alle password reali, ma solo alle cifre.
Ricorda, gli hash sono irreversibili, quindi è impossibile per l'hacker capire quale sia la password effettiva semplicemente guardando l'hash. L'hashing assicura che i dati siano memorizzati in uno stato criptato, quindi è più difficile da rubare.

Ogni volta che effettui l'accesso, il tuo provider di posta elettronica non memorizza la password in chiaro, gli basta l'hash.
Quando inserisci la tua password, questa viene sottoposta alla funzione hash.
L'output viene confrontato con l'hash salvato nel database.
Se i valori hash sono gli stessi, la password è corretta.
Se si inserisce una password errata, si otterrà un hash diverso da quello salvato. Gli hash NON corrisponderanno, quindi il tentativo di accesso NON andrà a buon fine.
Come puoi vedere, una funzione hash confonde i dati e li rende illeggibili. Anche se un hacker riesce ad accedere al server del tuo provider di posta elettronica, i dettagli memorizzati non possono essere decifrati.


