Hash je niz fiksne duljine (digest) generiran iz ulaznih podataka bilo koje veličine pomoću hash funkcije. Proces je jednosmjeran—ne možete dešifrirati ili obrnuti hash da biste dobili izvorne podatke. Zato je "hash enkripcija" pogrešan naziv; Hashiranje nije enkripcija.
Popularni algoritmi za hashiranje uključuju:
MD5 (zastarjelo za sigurnosne svrhe)
SHA-1 (ukinuto)
SHA-256, SHA-512 (dio SHA-2 obitelji)
SHA-3
bcrypt, scrypt, Argon2 (za sigurno hashiranje lozinki)
Hashiranje služi nekoliko svrha u kibernetičkoj sigurnosti i integritetu podataka. Ključni razlozi za korištenje hashiranja uključuju:
Integritet podataka: Osigurava da podaci nisu promijenjeni (npr. kontrolni zbrojevi datoteka).
Pohrana lozinki: Sigurno pohranjuje lozinke uspoređujući hashove umjesto pohranjivanja stvarnih lozinki.
Digitalni potpisi: Hashovi se potpisuju, a ne veliki dokumenti.
Učinkovitost: Male vrijednosti hashiranja fiksne veličine brže se uspoređuju od velikih blokova podataka.
Budući da su hashovi deterministički i brzi, idealni su za zadatke provjere.
Korištenje Hash funkcija uključuje:
Unos podataka (npr. datoteke, niza znakova ili lozinke).
Obradu podataka algoritmom za hashiranje.
Dobivanje sažetka, niza znakova fiksne veličine koji jedinstveno predstavlja ulaz.
Za zaštitu lozinkom:
Kombinirajte lozinku sa solju (slučajni podaci).
Primijenite sigurnu hash funkciju (npr. bcrypt ili Argon2).
Sigurno pohranite dobiveni hash i sol.
Budući da se hashovi ne mogu poništiti, unos (poput lozinke) provjeravate ponovnim hashiranjem i usporedbom novog hash-a s pohranjenim.
Hashiranje treba koristiti kada:
Potrebno je provjeriti integritet podataka (npr. provjera oštećenja ili neovlaštenog mijenjanja).
Lozinke moraju biti sigurno pohranjene (ne šifrirane ili kao običan tekst).
Uključeni su digitalni potpisi i certifikati (hashiranje osigurava autentičnost dokumenta).
Brza usporedba podataka je neophodna (npr. u hash tablicama ili predmemorijama).
Hashiranje nije prikladno kada kasnije trebate oporaviti izvorne podatke - za to služi enkripcija.