187 Shares 2663 views

Una funzione hash è: di cosa si tratta, perché e cosa succede

Spesso, quando il download di torrent o file direttamente se stessi nella descrizione c'è qualcosa di simile a «ad33e486d0578a892b8vbd8b19e28754» (per esempio, in ex.ua), spesso con una nota «MD5». Questo codice hash – il risultato che emette una funzione hash dopo l'elaborazione dei dati in arrivo. In inglese l'hash indica confusione, marijuana, erbaccia, o un piatto di carne macinata e verdure. Decifrare l'hash è molto difficile, possiamo dire che è praticamente impossibile. Allora sorge la domanda: "Perché abbiamo bisogno di tutte queste funzioni hash, se danno un incomprensibile incomprensibile, che pure non può essere decifrato?". Ciò sarà discusso in questo articolo.

Che cosa è una funzione di hash, e come funziona?

Questa funzione è progettato per convertire i dati in arrivo arbitrariamente grande quantità a causa di lunghezza fissa. Il processo stesso di una tale trasformazione è chiamato hashing, e il risultato – un hash o codice hash. A volte anche usare la parola "impronta digitale" o "message digest", ma in pratica sono molto più rari. Ci sono molti diversi algoritmi di come trasformare ogni insieme di dati in una certa sequenza di simboli certa lunghezza. L'algoritmo più utilizzato chiamato MD5, che è stato sviluppato già nel 1991. Nonostante il fatto che fino ad oggi, MD5 è un po 'superata e l'uso non è raccomandato, è ancora è ancora in giro, e spesso invece di "codice hash" su siti semplicemente scrivere MD5, e indicare il codice stesso.

Perché abbiamo bisogno di una funzione di hash?

Conoscendo il risultato, è praticamente impossibile determinare i dati originali, ma gli stessi dati in arrivo dare lo stesso risultato. Pertanto, la funzione di hash (chiamato anche una funzione di convoluzione) è spesso utilizzato per memorizzare informazioni molto sensibili come password, nome utente, il numero ID e altre informazioni personali. Invece di confrontare le informazioni immesse dall'utente, con quelli memorizzati nel database, v'è un confronto di hash. Ciò garantisce che, in caso di fuoriuscita accidentale di informazioni, nessuno può usufruire dei dati importanti per i propri scopi. Confrontando il codice hash è anche conveniente per verificare la correttezza dei download di file da Internet, in particolare se la comunicazione interruzione si è verificato durante il download.

Hash: cosa sono t

A seconda della funzione di hash destinazione può essere di tre tipi:

1. La funzione per controllare l'integrità delle informazioni

Quando una trasmissione di dati in rete, v'è il calcolo del pacchetto hash, e questo risultato è anche trasmesso insieme al file. Quando si riceve nuovamente calcolata codice hash e confrontato con il valore ottenuto dalla rete. Se il codice non corrisponde, indica un errore e il pacco danneggiato verrà trasferito nuovamente. In una velocità tale funzione di calcolo ma un numero limitato di valori hash e scarsa stabilità. Un esempio di questo tipo: CRC32, che ha solo 232 valori differenti.

2. La funzione crittografica

Questo tipo viene utilizzato per la protezione contro l'accesso non autorizzato (ND). Essi consentono di controllare per vedere se ci fosse corruzione dei dati a seguito della LP durante il trasferimento di file attraverso la rete. La vera hash è a disposizione del pubblico, in questo caso, come l'hash file ricevuto può essere calcolata utilizzando una pluralità di programmi diversi. Tali caratteristiche di lunga durata e funzionamento stabile, e la ricerca di collisioni (possibili risultati Risultati da dati di origine diversi) è molto complicato. Tali funzioni vengono usati per depositare nel database delle password (SH1, SH2, MD5) e altre utili informazioni.

3. La funzione è progettato per creare una struttura di dati efficiente

Il suo scopo è piuttosto organizzazione compatta e ordinata di informazioni in una struttura speciale, che si chiama la tabella di hash. Questa tabella consente di aggiungere nuove informazioni, eliminare le informazioni, e ricercare i dati necessari a velocità molto elevate.