O funcție hash unidirecțională este o funcție matematică care generează o amprentă a intrării, dar nu există nicio modalitate de a reveni la intrarea inițială. Dacă intrarea este aceeași, atunci hash-ul este întotdeauna același, dacă se schimbă deloc, chiar și cu un caracter, hash-ul de ieșire este complet diferit. Un hash poate fi folosit pentru a verifica dacă intrarea A este identică cu intrarea B, dar nu poate fi folosit pentru a recupera intrarea de la ieșire, ca în cazul unei alte funcții matematice, criptarea.
Technipages explică funcția de hash unidirecțional
Ieșirea unui hash unidirecțional are întotdeauna aceeași lungime, indiferent cât de lungă este intrarea. De exemplu, rezultatul pentru algoritmul de hashing md5 este întotdeauna de 32 de caractere dacă este reprezentat în hexazecimal, acest lucru este adevărat dacă intrarea are o lungime de un caracter sau lungimea întregii lucrări Shakespeare.
Un hash este ideal pentru a verifica dacă două lucruri sunt identice, acesta are două utilizări principale. „Verificarea integrității” este folosită pentru a verifica dacă un fișier care a fost descărcat este identic cu cel de pe server, comparând un hash cunoscut al fișierului server cu un hash al fișierului descărcat.
Algoritmii de hashing sunt utilizați și în bazele de date pentru a verifica dacă hash-ul parolei trimise se potrivește cu hash-ul stocat. Aceasta înseamnă, de asemenea, că, dacă un hacker obține acces neautorizat la baza de date, el nu primește parolele în sine, ci mai degrabă hash-urile care nu pot fi folosite pentru a se autentifica direct.
Lungimea ieșirii unui algoritm de hashing stabilește limite pentru câte ieșiri posibile există și, ca atare, descrie puterea acestuia împotriva „atacurilor de coliziune” hash. Atacurile de coliziune sunt în cazul în care două intrări diferite generează aceeași ieșire. Este destul de dificil să găsești două intrări aleatorii care generează aceeași ieșire, este semnificativ mai dificil să găsești o coliziune pentru o singură ieșire hash specifică.
Utilizări obișnuite ale funcției de hash unidirecțional
- Există două tipuri de algoritmi de hashing unidirecțional, rapid și lent, rapid este utilizat pentru verificarea fișierelor și lent pentru hashing parole.
- Intrarea unui algoritm de hashing unidirecțional nu poate fi determinată prin analizarea rezultatului sau prin rularea acesteia printr-o altă funcție.
- Atunci când un hacker are o listă de hash-uri de parole dintr-o bază de date furată, el calculează ce algoritm de hashing unidirecțional a fost folosit și apoi ghicește ca multe parole posibile, atunci când au o ieșire care se potrivește cu o intrare din baza de date, știu că intrarea este a utilizatorului parola.
Utilizari greșite frecvente ale funcției de hash unidirecțional
- Un algoritm de hashing unidirecțional este un tip de criptare și poate fi utilizat pentru a stoca în siguranță date pentru a fi recuperate la o dată ulterioară, folosind o parolă și o altă funcție.