O funcție hash este un algoritm matematic care transformă orice dată de intrare — un text, un fișier, o parolă — într-un șir de caractere de lungime fixă, numit "hash", unic pentru acea dată și practic imposibil de inversat înapoi la original. Spre deosebire de criptare, un hash nu este gândit să fie "decriptat" — e un drum într-un singur sens.
Cum funcționează o funcție hash?
Aceeași dată de intrare produce mereu exact același hash, dar chiar și o schimbare minimă a datei — o singură literă — produce un hash complet diferit. Asta îl face util în două direcții: pentru a verifica rapid dacă un fișier a fost modificat (comparând hash-ul înainte și după) și pentru a stoca parole în siguranță — site-urile serioase nu păstrează parola ta reală, ci doar hash-ul ei.
De ce contează?
Pentru că, atunci când o bază de date cu parole e furată dintr-un site, ce contează e dacă parolele erau stocate ca hash sau, mai rău, ca text simplu. Dacă erau hash-uite corect (cu tehnici suplimentare precum "salt", care adaugă date aleatorii unice fiecărei parole), atacatorul obține un șir de caractere practic inutilizabil direct, nu parola reală.
Cum te protejezi?
- Ca utilizator, folosește o parolă unică pentru fiecare cont — dacă un site stochează greșit parolele și e spart, celelalte conturi rămân protejate.
- Ca firmă care dezvoltă sau administrează un sistem, nu stoca niciodată parolele utilizatorilor în text simplu — folosește funcții hash dedicate parolelor, nu simple sume de control.
- Verifică periodic integritatea fișierelor critice prin compararea hash-urilor, ca să depistezi modificări neautorizate.
Un exemplu concret
Baza de date a unui magazin online e furată într-o breșă. Parolele fuseseră stocate corect, ca hash-uri cu "salt" unic pentru fiecare utilizator — atacatorul are șirurile de caractere, dar nu poate obține practic parolele reale din ele, spre deosebire de o firmă vecină, spartă în aceeași perioadă, care stocase parolele necriptat.
Vrei să știi dacă sistemele firmei tale stochează datele corect? Cere un audit de securitate.
