Så använder du verktyget
- Klistra in ett hashvärde. Ta bort etiketter som 0x, sha256= eller sha384-, men behåll lösenordshashar hela, inklusive ett inledande $, { eller *.
- Läs resultatet: den identifierade formen och dess storlek i bitar, och därefter de möjliga algoritmerna, där de troligaste är markerade som Mest sannolik. Kostnadsfaktorn för bcrypt, eller antalet rundor för sha256crypt, sha512crypt och PBKDF2, visas när värdet finns med i strängen.
- För kandidaterna MD5, SHA-1, SHA-256, SHA-512, CRC-32 och CRC-32C tar Öppna verktyget dig till motsvarande kalkylator.
- Om du känner till eller misstänker vad originaltexten är skriver du den i Kontrollera mot text för att se vilken algoritm som återskapar hashvärdet.
Så identifieras ett hashvärde
Varje hashalgoritm har en fast utdatastorlek, och hex använder två tecken per byte, så längden på en hexsträng är den starkaste ledtråden. Verktyget kontrollerar också teckenuppsättningen och letar efter de prefix som format för lösenordshashar placerar i början.
| Hextecken | Bitar | Vanliga algoritmer |
|---|---|---|
| 8 | 32 | CRC-32, CRC-32C och Adler-32 |
| 32 | 128 | MD5, NTLM och MD4 |
| 40 | 160 | SHA-1 och RIPEMD-160 |
| 56 | 224 | SHA-224 och SHA3-224 |
| 64 | 256 | SHA-256, SHA3-256, BLAKE2s och Keccak-256 |
| 96 | 384 | SHA-384 och SHA3-384 |
| 128 | 512 | SHA-512, SHA3-512, BLAKE2b och Whirlpool |
Enbart längden räcker inte för att avgöra saken, eftersom ett bra hashvärde ser ut som slumpmässig data och inte bär någon markering av sin algoritm. Ett värde på 32 tecken kan vara MD5, MD4 eller NTLM, som Windows använder för kontolösenord (MD4 av lösenordet i UTF-16LE). Verktyget rangordnar därför kandidaterna efter hur vanliga de är: MD5 först, eller NTLM först när hashvärdet bara består av versaler, så som vissa Windows-verktyg för lösenordsdumpning skriver ut det. På samma sätt skiljer sig Ethereums Keccak-256 och den standardiserade SHA3-256 bara åt i utfyllnaden, men båda ger 64 hextecken.
Hashvärden i Base64 och format för lösenordshashar
Vissa system skriver hashvärden i Base64 i stället för hex: 24 tecken för 16 byte (MD5, som i headern Content-MD5), 28 för SHA-1, 44 för SHA-256, 64 för SHA-384 (som i attribut för Subresource Integrity) och 88 för SHA-512. Verktyget räknar om längden till byte och listar samma kandidater. Utelämnad utfyllnad och URL-säkra tecken godtas, men ta först bort ett prefix som sha384-.
Format för lösenordshashar beskriver sig själva: ett prefix anger algoritmen, och salt och kostnadsinställningar skrivs in i strängen. De moderna formaten är saltade och avsiktligt långsamma; LDAP- och MySQL-formaten i de två sista raderna är snabba konstruktioner baserade på SHA-1, och bara {SSHA} lägger till ett salt.
| Börjar med | Format | Förekommer vanligen i |
|---|---|---|
$2a$, $2b$, $2y$ | bcrypt, alltid 60 tecken; de två siffrorna som följer är kostnadsfaktorn, och varje steg fördubblar arbetet | Webbramverk, PHP password_hash() |
$argon2id$ | Argon2id med inställningar för minne (m), tid (t) och parallellism (p) | Moderna applikationer; rekommenderas av OWASP |
$6$, $5$ | sha512crypt, sha256crypt, med valfritt rounds= | /etc/shadow i Linux |
$y$ | yescrypt | /etc/shadow i många aktuella Linuxdistributioner |
$1$, $apr1$ | md5crypt, Apache MD5 | Äldre Unix-system, .htpasswd |
pbkdf2_sha256$ | PBKDF2-SHA256 med antal iterationer | Django |
{SHA}, {SSHA} | SHA-1, saltad SHA-1 | LDAP-kataloger |
* och 40 hexsiffror | MySQL 4.1+ PASSWORD() | Användartabeller i MySQL |
Att identifiera är inte att knäcka
Hashning är envägs. Verktyget tittar bara på strängens form: det kan inte avslöja, dekryptera eller slå upp indatan, och det skickar ingenting till en server eller en databas på nätet. Det enda sättet att hitta indatan är att gissa kandidater och hasha var och en, vilket är vad verktyg för att återskapa lösenord, som hashcat och John the Ripper, gör när de väl känner till algoritmen. Saltade, långsamma format som bcrypt och Argon2 finns för att göra sådana gissningar dyra. Testa bara hashvärden som du har behörighet att arbeta med.
Kontrollera mot text testar en enskild gissning. Texten du skriver hashas som UTF-8 med MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 och CRC-32C, och du får veta vilket resultat som är lika med hashvärdet, oavsett om det är skrivet i hex med gemener eller versaler eller i Base64. Funktionen kan inte bekräfta saltade lösenordshashar eller HMAC-värden, eftersom de även beror på ett salt eller en hemlig nyckel; för ett nyckelbaserat värde använder du HMAC-generatorn med nyckeln.
Vanliga frågor
Kan verktyget visa originaltexten eller lösenordet?
Nej. Det anger bara den troliga algoritmen. Hashfunktioner går inte att vända; tjänster på nätet som påstår sig "dekryptera hashvärden" slår upp värdet i tabeller med hashvärden för vanliga ord och läckta lösenord, vilket bara fungerar för svaga, osaltade indata.
Varför listas flera algoritmer för ett och samma hashvärde?
Algoritmer med samma utdatastorlek ger strängar med samma längd och teckenuppsättning, och ingenting i själva hashvärdet visar vilken som användes. Den mest sannolika kandidaten markeras först, utifrån hur vanlig varje algoritm är. Vill du vara säker beräknar du hashvärdet på nytt från känd indata.
Är en hexsträng på 32 tecken alltid MD5?
Oftast, men inte alltid. NTLM, MD4, MD2 och RIPEMD-128 ger samma längd, och det gör även alla 128-bitarsvärden som skrivs i hex, till exempel ett UUID utan bindestreck eller en slumpmässig token. Sammanhanget avgör: en lösenordshash från Windows betyder NTLM, en kontrollsumma för en fil betyder MD5.
Varför hittar Kontrollera mot text ingen matchning?
echo lägger till en om du inte använder echo -n eller printf), andra blanksteg eller annat skiftläge, text som hashades i en annan kodning än UTF-8, ett salt eller en nyckel som i lösenordshashar och HMAC-värden, eller en algoritm som kontrollen inte täcker, till exempel SHA-3, BLAKE2 eller NTLM.Är det säkert att klistra in en lösenordshash här?
Analysen körs helt i din webbläsare, och hashvärdet varken överförs eller sparas. En lösenordshash från ett verkligt system låter ändå vem som helst som har den prova gissningar offline, så behandla sådana hashvärden som känsliga och håll dem borta från ärenden, chattar och skärmbilder.