Često prilikom preuzimanja torrenta ilisame datoteke u opisu su nešto poput "ad33e486d0578a892b8vbd8b19e28754" (na primjer, u ex.ua), često s postscriptom "md5". Ovaj hash kod rezultat je koji hash funkcija proizvodi nakon obrade dolaznih podataka. U prijevodu s engleskog, haš znači zbrka, marihuana, trava ili jelo od sitno nasjeckanog mesa i povrća. Dešifriranje hasha je vrlo, vrlo teško, možemo reći da je gotovo nemoguće. Tada se postavlja pitanje: "Zašto su uopće potrebne sve te hash funkcije, ako odaju nerazumljivu besmislicu koja se još uvijek ne može dešifrirati?" O tome će biti riječi u ovom članku.
Što je hash funkcija i kako funkcionira?
Zašto je potrebna hash funkcija?
Hash funkcije: što sut
1. Funkcija za provjeru integriteta informacija
Kada se podaci prenose preko mreže,izračunava se hash paketa, a ovaj rezultat se također prenosi zajedno s datotekom. Nakon prijema, hash kod se ponovno izračunava i uspoređuje s vrijednošću primljenom preko mreže. Ako se kod ne podudara, to ukazuje na pogreške, a oštećeni paket će se ponovno prenijeti. Takva funkcija ima veliku brzinu izračuna, ali mali broj hash vrijednosti i lošu stabilnost. Primjer ovog tipa: CRC32, koji ima samo 232 različite vrijednosti.
2. Kriptografska funkcija
Ova vrsta se koristi za zaštitu odneovlašteni pristup (ND). Omogućuju vam da provjerite je li došlo do oštećenja podataka kao posljedica ND-a tijekom prijenosa datoteka preko mreže. Pravi hash u ovom slučaju je javno dostupan, a hash rezultirajuće datoteke može se izračunati pomoću mnogo različitih programa. Takve funkcije imaju dug i stabilan vijek trajanja, a potraga za kolizijama (mogućim podudarnostima rezultata iz različitih ulaznih podataka) je vrlo teška. Upravo se te funkcije koriste za pohranjivanje lozinki (SH1, SH2, MD5) i drugih vrijednih informacija u bazi podataka.
3. Funkcija dizajnirana za stvaranje učinkovite strukture podataka
Njegova je svrha da bude kompaktan i poštenuređena organizacija informacija u posebnu strukturu koja se naziva hash tablica. Ova tablica vam omogućuje dodavanje novih informacija, brisanje informacija i pretraživanje podataka koje želite vrlo velikom brzinom.