/ / Funzione hash: cos'è, perché è necessaria e cosa succede

Funzione hash: cos'è, perché è necessaria e cosa succede

Spesso durante il download di torrent odirettamente i file stessi nella descrizione sono qualcosa come "ad33e486d0578a892b8vbd8b19e28754" (ad esempio, in ex.ua), spesso con il poscritto "md5". Questo codice hash è il risultato che la funzione hash produce dopo l'elaborazione dei dati in entrata. Tradotto dall'inglese, un hash significa confusione, marijuana, erba o un piatto di carne e verdure tritate finemente. Decifrare l'hash è molto, molto difficile, si può dire che è quasi impossibile. Quindi sorge la domanda: "Perché abbiamo bisogno di tutte queste funzioni di hash in generale se producono un incomprensibile incomprensibile che non può ancora essere decifrato?" Questo sarà discusso in questo articolo.

Che cos'è una funzione hash e come funziona?

funzione hash
Данная функция предназначена для преобразования inserire dati di dimensioni arbitrariamente grandi in un risultato di lunghezza fissa. Il processo di tale conversione si chiama hashing e il risultato è un codice hash o hash. A volte usano le parole "impronta digitale" o "digest digest", ma in pratica sono molto meno comuni. Esistono molti algoritmi diversi su come trasformare qualsiasi array di dati in una determinata sequenza di caratteri di una certa lunghezza. L'algoritmo più utilizzato chiamato md5, sviluppato nel 1991. Nonostante il fatto che oggi md5 sia in qualche modo obsoleto e non sia raccomandato per l'uso, è ancora in uso e spesso al posto della parola "codice hash", scrivono semplicemente md5 sui siti e indicano il codice stesso.

Perché abbiamo bisogno di una funzione hash?

decifrare l'hash
Conoscendo il risultato, è quasi impossibile determinarlodati di origine, ma gli stessi dati di input danno lo stesso risultato. Pertanto, la funzione hash (chiamata anche funzione di convoluzione) viene spesso utilizzata per memorizzare informazioni molto importanti, come password, accesso, numero di identificazione e altre informazioni personali. Invece di confrontare le informazioni inserite dall'utente con quelle memorizzate nel database, vengono confrontati i loro hash. Ciò garantisce che in caso di perdita accidentale di informazioni nessuno sarà in grado di utilizzare dati importanti per i propri scopi. Confrontando il codice hash, è anche conveniente verificare la correttezza del download di file da Internet, soprattutto se si sono verificate interruzioni della comunicazione durante il download.

Funzioni hash: cosa sonot

funzione hash
A seconda del suo scopo, la funzione hash può essere di tre tipi:

1. Funzione per verificare l'integrità delle informazioni

Quando i dati vengono trasmessi sulla rete,viene calcolato l'hash del pacchetto e anche questo risultato viene trasmesso insieme al file. Alla ricezione, il codice hash viene nuovamente calcolato e confrontato con il valore ricevuto sulla rete. Se il codice non corrisponde, ciò indica errori e il pacchetto danneggiato verrà nuovamente trasmesso. Tale funzione ha una velocità di calcolo elevata, ma un piccolo numero di valori di hash e scarsa stabilità. Un esempio di questo tipo: CRC32, che ha solo 232 valori diversi.

2. Funzione crittografica

Questo tipo viene utilizzato per la protezione daaccesso non autorizzato (ND). Consentono di verificare se si è verificata distorsione dei dati a causa di ND durante il trasferimento di file sulla rete. L'hash vero in questo caso è disponibile pubblicamente e l'hash del file risultante può essere calcolato usando molti programmi diversi. Tali funzioni hanno una vita lunga e stabile e la ricerca di collisioni (possibili corrispondenze del risultato da diversi dati di origine) è molto complicata. Sono queste funzioni che vengono utilizzate per memorizzare le password (SH1, SH2, MD5) e altre informazioni preziose nel database.

3. Funzione progettata per creare una struttura dati efficace

Il suo scopo è compatto ed equoUn'organizzazione organizzata di informazioni in una struttura speciale chiamata tabella hash. Questa tabella consente di aggiungere nuove informazioni, eliminare informazioni e cercare i dati necessari a una velocità molto elevata.