Generator de hashuri
Introdu un text, iar hashurile sunt calculate deodată cu patru algoritmi.
0 caractere · 0 octeți
Hashuri
- SHA-1160 biți
Scrie ceva în câmpul de mai sus.
- SHA-256256 biți
Scrie ceva în câmpul de mai sus.
- SHA-384384 biți
Scrie ceva în câmpul de mai sus.
- SHA-512512 biți
Scrie ceva în câmpul de mai sus.
Textul nu părăsește niciodată browserul tău. Calculul folosește funcția criptografică proprie a browserului.
Cum funcționează
Un hash criptografic transformă un text de orice lungime într-un număr fix de caractere. Același text dă întotdeauna același hash, iar cea mai mică schimbare dă unul complet diferit.
Funcția merge într-un singur sens. Nu există nicio cale de a calcula textul înapoi din hash, și tocmai acesta este rostul ei.
Hashurile sunt folosite pentru a compara fișiere, pentru a descoperi că ceva s-a schimbat și ca element de bază în semnături și certificate.
SHA-1 nu mai este considerat sigur. Din 2017 există metode practice de a construi două intrări diferite cu același hash SHA-1, așa că folosește-l doar ca să compari cu sisteme mai vechi.
Parolele nu trebuie stocate cu aceste funcții. Sunt făcute să fie rapide, ceea ce le face ușor de ghicit prin încercări. Pentru parole sunt necesare funcții lente intenționat, ca Argon2id, scrypt și PBKDF2. OWASP recomandă bcrypt doar pentru sistemele vechi în care nu există nici Argon2id, nici scrypt.
Textul este codificat în UTF-8 înainte de calcul, așa că diacriticele dau aici același hash ca în orice alt instrument corect.
Cum lucrează instrumentul
Textul este transformat în UTF-8 și trimis funcției crypto.subtle.digest din browser, care calculează deodată SHA-1, SHA-256, SHA-384 și SHA-512. Hashurile sunt scrise în hexazecimal cu litere mici, câte două caractere pe octet: 40 de caractere pentru SHA-1, 64 pentru SHA-256, 96 pentru SHA-384 și 128 pentru SHA-512. Ele sunt recalculate la fiecare caracter pe care îl scrii.
Aceiași octeți dau întotdeauna același hash în orice instrument corect, dar același text poate deveni octeți diferiți. În UTF-8, ș se scrie cu doi octeți, C8 99, iar în codificarea mai veche ISO 8859-16 cu unul singur, BA. Textele românești conțin uneori și ş cu sedilă, U+015F, un alt caracter decât ș cu virgulă, U+0219, deși arată aproape la fel; tabelul Unicode notează că pentru română trebuie folosit ș. În UTF-8, ş este C5 9F, așa că două cuvinte care par identice dau hashuri complet diferite.
Exemplu de calcul
abc dă hashul SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, aceeași valoare pe care o dă NIST în exemplul de test pentru algoritm. Dacă abc este urmat de o trecere la rând nou, cum adaugă comanda echo, hashul devine edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. Trecerea la rând nou nu se vede în text, dar hashul este altul.
Cazuri limită
Instrumentul calculează hashul unui text, nu al unui fișier. Suma de control a unui fișier descărcat se calculează pe octeții fișierului, de exemplu cu certutil -hashfile în Windows sau cu sha256sum în Linux. Conținutul fișierului lipit aici dă același hash doar dacă textul este identic octet cu octet.
Sfârșiturile de rând sunt cel mai des motivul pentru care hashurile nu se potrivesc. HTML Standard cere ca o casetă de text să transforme orice sfârșit de rând în LF simplu, așa că un text dintr-un fișier cu sfârșituri de rând Windows, CR LF, primește aici alt hash decât în certutil. Contează și spațiile de la sfârșitul unui rând și o trecere la rând nou la final.
Pe 15 decembrie 2022, NIST a anunțat că SHA-1 trebuie scos din uz până la 31 decembrie 2030 și înlocuit cu SHA-2 sau SHA-3. Dintre funcțiile de aici, SHA-256, SHA-384 și SHA-512 fac parte din SHA-2.