Generator hash
Calculați hash pentru text sau pentru un fișier cu MD5, SHA-1, SHA-2, SHA-3 sau HMAC.
Instrumente înrudite
- Generator de paroleGenerați parole aleatorii puternice în browser, cu o estimare a entropiei.
- Codor / DecodorCodificați și decodați Base64, URL-uri și entități HTML și convertiți baze numerice.
- Decodor JWTDecodați antetul și revendicările JWT, primiți avertismente despre trucurile de algoritm și de antet care duc la falsificarea tokenurilor, semnați tokenuri noi și verificați semnături HS, RS, PS și ES în browser.
Despre acest instrument
Generator hash codează ca UTF-8 textul pe care îl lipiți și calculează deodată MD5, SHA-1, SHA-256, SHA-384 și SHA-512, afișate ca hexazecimal cu litere mici; „Afișează și SHA-3” adaugă SHA3-224, SHA3-256, SHA3-384 și SHA3-512, calculate de implementarea FIPS 202 proprie a paginii, pentru că Web Crypto nu are SHA-3. Activați „HMAC cu o cheie secretă” și returnează HMAC-SHA-1, HMAC-SHA-256, HMAC-SHA-384, HMAC-SHA-512 și, când SHA-3 este activ, cele patru rânduri HMAC-SHA3, cu cheia pe care o tastați (RFC 2104); nu există un rând HMAC-MD5. Face hash atât pe un fișier pe care îl deschideți, cât și pe textul din casetă, și nu este un KDF pentru parole: fără sare, fără număr de iterații, fără bcrypt, scrypt, Argon2 sau PBKDF2, așa că un digest produs aici nu este o modalitate de a stoca o parolă. MD5 și SHA-1 sunt păstrate pentru compararea sumelor de control cu instrumente care încă le afișează, nu pentru ceva ce un atacator poate influența.
Textul și cheia HMAC rămân în pagină - nu sunt încărcate în API-ul XGM și nu sunt scrise în URL, care păstrează doar calea instrumentului, așa că un link partajat nu conține nimic din ce ați introdus. SHA-1, SHA-256, SHA-384 și SHA-512 provin din crypto.subtle.digest, variantele cu cheie din crypto.subtle.importKey plus crypto.subtle.sign, iar MD5 și cele patru lungimi SHA-3 sunt implementate în JavaScript-ul propriu al paginii, pentru că Web Crypto nu le oferă pe niciuna. Copierea și exportul construiesc fișierul local, în browser; nimic nu este păstrat între vizite.
Cum se folosește
- Deschideți instrumentul Generator hash.
- Lipiți sau tastați datele pe care vreți să le inspectați.
- Citiți rezultatul, calculat în browser; datele nu sunt trimise către XGM.
- Copiați rezultatul doar după ce ați verificat că arată corect.
- Folosiți instrumentele XGM înrudite dacă aveți nevoie de o imagine de diagnostic mai largă.
Întrebări frecvente
De ce nu există HMAC-MD5?
Rezumatele cu cheie provin din implementarea Web Crypto a browserului, care oferă HMAC peste SHA-1, SHA-256, SHA-384 și SHA-512 și deloc MD5. MD5 este calculat de JavaScriptul propriu al paginii și este lăsat fără cheie: HMAC-MD5 nu are nicio utilizare modernă care să merite livrată, în timp ce HMAC-SHA3 are și este calculat aici (RFC 2104 peste buretele SHA-3). De aceea rândul MD5 dispare imediat ce furnizați o cheie. Dacă aveți nevoie de HMAC-MD5 pentru un protocol vechi, folosiți un instrument de linie de comandă precum openssl.
Pot stoca parolele utilizatorilor ca digesturi SHA-256?
Nu. SHA-256 este proiectat să fie rapid, iar un singur digest fără sare poate fi ghicit cu viteze enorme pe plăci grafice obișnuite, așa că un tabel furat de digesturi este aproape un tabel de parole. Stocarea parolelor are nevoie de o funcție cu consum mare de memorie sau cu factor de lucru și cu o sare per utilizator - Argon2id, scrypt, bcrypt sau PBKDF2 (RFC 8018) - dintre care acest instrument nu implementează niciuna.
MD5 și SHA-1 sunt acum inutile?
Sunt compromise pentru orice context adversarial: există atacuri practice de coliziune pentru amândouă, așa că nu au voie să susțină semnături, certificate sau garanții de integritate. Rămân potrivite ca sume de control fără rol de securitate - compararea unei descărcări cu pagina producătorului, deduplicarea rândurilor, potrivirea unui ETag vechi - unde nimeni nu încearcă să fabrice o intrare care produce coliziune. În rest, folosiți SHA-256 sau mai bun.
De ce digestul meu diferă de cel dat de sha256sum pe același text?
Textul este hashuit exact ca octeții UTF-8 din casetă, fără a se adăuga vreun caracter de linie nouă la final. Un echo din shell adaugă un line feed, așa că echo "abc" | sha256sum hashuiește patru octeți, în timp ce această pagină hashuiește trei; printf '%s' abc se potrivește. Terminațiile de linie Windows sunt altă cauză frecventă: CRLF și LF sunt octeți diferiți și deci digesturi diferite.
Trebuie ca cheia HMAC să aibă o anumită lungime?
Orice lungime funcționează. Cheia este luată ca octeți UTF-8 bruți și predată către Web Crypto, care aplică regula din RFC 2104: o cheie mai lungă decât dimensiunea blocului de hash trece mai întâi printr-un hash, iar una mai scurtă este completată cu zerouri până la dimensiunea blocului. O cheie scrisă în base64 sau hex este folosită ca acel text literal, nu decodată, așa că decodați-o dumneavoastră dacă cealaltă parte folosește octeții bruți.