Slik bruker du verktøyet
- Lim inn én hash. Fjern merkelapper som 0x, sha256= eller sha384-, men behold passordhasher hele, inkludert en innledende $, { eller *.
- Les resultatet: den gjenkjente formen og størrelsen i bit, og deretter Mulige algoritmer, der de mest sannsynlige er merket med Mest sannsynlig. Kostnadsfaktoren for bcrypt, eller antall runder for sha256crypt, sha512crypt og PBKDF2, vises når strengen inneholder den.
- For kandidatene MD5, SHA-1, SHA-256, SHA-512, CRC-32 og CRC-32C tar Åpne verktøy deg til den tilsvarende kalkulatoren.
- Hvis du kjenner eller mistenker originalteksten, skriver du den inn i Sjekk mot tekst for å se hvilken algoritme som gjenskaper hashen.
Slik identifiseres en hash
Hver hashalgoritme har en fast utdatastørrelse, og hex bruker to tegn per byte, så lengden på en hex-streng er det sterkeste hintet. Verktøyet sjekker også tegnsettet og ser etter prefiksene som formater for passordhasher setter først i strengen.
| Hex-tegn | Bit | Vanlige algoritmer |
|---|---|---|
| 8 | 32 | CRC-32, CRC-32C og Adler-32 |
| 32 | 128 | MD5, NTLM og MD4 |
| 40 | 160 | SHA-1 og RIPEMD-160 |
| 56 | 224 | SHA-224 og SHA3-224 |
| 64 | 256 | SHA-256, SHA3-256, BLAKE2s og Keccak-256 |
| 96 | 384 | SHA-384 og SHA3-384 |
| 128 | 512 | SHA-512, SHA3-512, BLAKE2b og Whirlpool |
Lengden alene kan ikke avgjøre saken, fordi en god hash ser ut som tilfeldige data og ikke inneholder noe merke som viser algoritmen. En verdi på 32 tegn kan være MD5, MD4 eller NTLM, som Windows bruker for kontopassord (MD4 av passordet i UTF-16LE). Verktøyet rangerer derfor kandidatene etter hvor vanlige de er: MD5 først, eller NTLM først når hashen bare har store bokstaver, slik enkelte Windows-verktøy for uthenting av passordhasher skriver den ut. På samme måte skiller Ethereums Keccak-256 og den standardiserte SHA3-256 seg bare i utfyllingen, men begge gir 64 hex-tegn.
Hashverdier i Base64 og formater for passordhasher
Noen systemer skriver hashverdier i Base64 i stedet for hex: 24 tegn for 16 byte (MD5, som i headeren Content-MD5), 28 for SHA-1, 44 for SHA-256, 64 for SHA-384 (som i Subresource Integrity-attributter) og 88 for SHA-512. Verktøyet regner lengden om til byte og viser de samme kandidatene. Manglende utfylling og URL-sikre tegn godtas, men fjern et prefiks som sha384- først.
Formater for passordhasher beskriver seg selv: et prefiks angir algoritmen, og salt og kostnadsinnstillinger er skrevet inn i strengen. De moderne formatene er saltet og bevisst langsomme. LDAP- og MySQL-formatene i de to siste radene er raske SHA-1-konstruksjoner, og bare {SSHA} legger til et salt.
| Starter med | Format | Finnes typisk i |
|---|---|---|
$2a$, $2b$, $2y$ | bcrypt, alltid 60 tegn. De to neste sifrene er kostnadsfaktoren, og hvert trinn dobler arbeidet | Nettrammeverk, PHP password_hash() |
$argon2id$ | Argon2id med innstillinger for minne (m), tid (t) og parallellitet (p) | Moderne applikasjoner, anbefalt av OWASP |
$6$, $5$ | sha512crypt, sha256crypt, med valgfri rounds= | /etc/shadow på Linux |
$y$ | yescrypt | /etc/shadow på mange nyere Linux-distribusjoner |
$1$, $apr1$ | md5crypt, Apache MD5 | Eldre Unix-systemer, .htpasswd |
pbkdf2_sha256$ | PBKDF2-SHA256 med antall iterasjoner | Django |
{SHA}, {SSHA} | SHA-1, saltet SHA-1 | LDAP-kataloger |
* og 40 hex-sifre | MySQL 4.1+ PASSWORD() | Brukertabeller i MySQL |
Å identifisere er ikke det samme som å knekke
En hash er enveis. Identifikatoren ser bare på formen til strengen: den kan ikke avsløre, dekryptere eller slå opp inndataene, og den sender ingenting til en server eller en database på nettet. Den eneste måten å finne inndataene på er å gjette kandidater og hashe hver av dem, og det er nettopp det verktøy for passordgjenoppretting som hashcat og John the Ripper gjør når de kjenner algoritmen. Saltede, langsomme formater som bcrypt og Argon2 finnes for å gjøre slik gjetting kostbar. Test bare hasher du har tillatelse til å jobbe med.
Sjekk mot tekst tester én bestemt gjetning. Funksjonen hasher teksten du skriver inn, som UTF-8, med MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 og CRC-32C, og viser hvilket resultat som samsvarer med hashen, enten den er skrevet i hex med små eller store bokstaver eller i Base64. Den kan ikke bekrefte saltede passordhasher eller HMAC-er, fordi disse også avhenger av et salt eller en hemmelig nøkkel. For en verdi med nøkkel bruker du HMAC-generatoren med nøkkelen.
Ofte stilte spørsmål
Kan dette verktøyet fortelle meg originalteksten eller passordet?
Nei. Det angir bare den sannsynlige algoritmen. Hashfunksjoner kan ikke reverseres. Nettjenester for «hash-dekryptering» slår opp verdien i tabeller med hasher av vanlige ord og lekkede passord, og det fungerer bare for svake inndata uten salt.
Hvorfor vises flere algoritmer for én hash?
Algoritmer med samme utdatastørrelse gir strenger med samme lengde og tegnsett, og ingenting i selve hashen forteller hvilken som ble brukt. Den mest sannsynlige kandidaten er merket og står først, basert på hvor vanlig hver algoritme er. For å være sikker kan du beregne hashen på nytt fra kjente inndata.
Er en hex-streng på 32 tegn alltid MD5?
Som regel, men ikke alltid. NTLM, MD4, MD2 og RIPEMD-128 gir samme lengde, og det gjør også enhver 128-biters verdi skrevet i hex, for eksempel en UUID uten bindestreker eller et tilfeldig token. Konteksten avgjør: en passordhash fra Windows betyr NTLM, en kontrollsum for en fil betyr MD5.
Hvorfor finner Sjekk mot tekst ikke noe samsvar?
echo legger til et med mindre du bruker echo -n eller printf), forskjeller i mellomrom eller store og små bokstaver, tekst som ble hashet i en annen koding enn UTF-8, et salt eller en nøkkel som i passordhasher og HMAC-er, eller en algoritme som sjekken ikke dekker, som SHA-3, BLAKE2 eller NTLM.Er det trygt å lime inn en passordhash her?
Analysen kjører helt i nettleseren din, og hashen blir ikke overført eller lagret. Likevel lar en passordhash fra et ekte system alle som har den, prøve gjetninger offline, så behandle slike hasher som sensitive og hold dem unna supportsaker, chatter og skjermbilder.