Un hash este un șir de caractere cu lungime fixă (digest) generat din date de intrare de orice dimensiune folosind o funcție hash. Procesul este unidirecțional - nu poți decripta sau inversa un hash pentru a obține datele originale. De aceea, „criptarea hash” este un termen impropriu; Hashing-ul nu este criptare.
Algoritmii hash populari includ:
MD5 (învechit din cauza utilizării în domeniul securității)
SHA-1 (depreciat)
SHA-256, SHA-512 (parte a familiei SHA-2)
SHA-3
bcrypt, scrypt, Argon2 (pentru hashing securizat al parolelor)
Hashing-ul servește mai multor scopuri în domeniul securității cibernetice și al integrității datelor. Motivele cheie pentru utilizarea hash-ului includ:
Integritatea datelor: Asigură că datele nu au fost modificate (de exemplu, sumele de control ale fișierelor).
Stocarea parolelor: Stochează în siguranță parolele prin compararea hash-urilor în loc să stocheze parolele reale.
Semnături digitale: Hash-urile sunt semnate în loc de documente mari.
Eficiență: Valorile hash mici, de dimensiune fixă, sunt mai rapide de comparat decât blocurile mari de date.
Deoarece hash-urile sunt deterministe și rapide, acestea sunt ideale pentru sarcini de verificare.
Utilizarea unei funcții hash implică:
Introducerea datelor (de exemplu, un fișier, un șir de caractere sau o parolă).
Prelucrarea datelor cu un algoritm de hashing.
Obținerea unui digest, care este un șir de caractere cu dimensiune fixă care reprezintă în mod unic intrarea.
Pentru protecția prin parolă:
Combinarea parolei cu o salt (date aleatorii).
Aplicarea unei funcții de hash securizate (de exemplu, bcrypt sau Argon2).
Stocarea în siguranță a hash-ului și a saltului rezultate.
Deoarece hash-urile nu poate fi inversată, verificați intrarea (cum ar fi o parolă) prin hashing-ul din nou și compararea noului hash cu cel stocat.
Hashing-ul ar trebui utilizat atunci când:
Integritatea datelor trebuie verificată (de exemplu, verificarea coruperii sau a manipulării).
Parolele trebuie stocate în siguranță (nu criptate sau în text simplu).
Sunt implicate semnături digitale și certificate (hashing-ul asigură autenticitatea documentelor).
Compararea rapidă a datelor este necesară (de exemplu, în tabele hash sau cache-uri).
Hashing-ul este **nu este** potrivit atunci când trebuie să recuperați datele originale ulterior - pentru asta există criptarea.