Identifiera algoritmen för en hash
- Panel
- Dokumentation
- API
Vad är en kryptografisk hash?
En hash (eller kryptografiskt avtryck) är resultatet av en funktion som omvandlar indata av godtycklig storlek (ett lösenord, en fil, en sträng) till en sträng av fast storlek. Funktionen är enkelriktad: från en hash är det matematiskt omöjligt att återställa det ursprungliga indatat. Två identiska indata producerar alltid samma hash, men den minsta förändring i indatat ändrar resultatet helt.
Vårt verktyg identifierar den sannolika algoritmen för en hash från dess format, och försöker en lookup mot en ordbok med ultrakänsliga lösenord förberäknade på de viktigaste algoritmerna.
Hur identifierar man en hash?
Identifieringen bygger på tre ledtrådar:
- Längden: varje algoritm producerar ett fingeravtryck med fast storlek.
- Formatet: rent hexadecimalt, Base64 eller Modular Crypt Format med specifika prefix.
- Prefixet: moderna lösenordshashar följer formatet
$id$params$salt$hash, däridentydigt identifierar den funktion som använts.
Vanliga hexadecimala längder
- 8 tecken: CRC32 (kontrollsumma, inte en kryptografisk hash)
- 32 tecken: MD5, MD4, NTLM, RIPEMD-128
- 40 tecken: SHA-1, RIPEMD-160
- 64 tecken: SHA-256, SHA3-256
- 96 tecken: SHA-384, SHA3-384
- 128 tecken: SHA-512, SHA3-512, Whirlpool
En längd ensam räcker inte för att dra slutsatser: MD5 och NTLM delar samma storlek på 32 hexa- tecken, till exempel. Vårt verktyg returnerar då listan över möjliga algoritmer.
Modular Crypt Format-prefix
Lösenordshashar från crypt() eller moderna bibliotek använder ett
uttryckligt prefix:
$1$: MD5 crypt$5$: SHA-256 crypt$6$: SHA-512 crypt$2y$,$2a$,$2b$: Bcrypt (varianter beroende på plattform)$argon2i$,$argon2id$,$argon2d$: Argon2 (användnings- varianter, Argon2id är idag rekommenderad)
Exempel på Bcrypt-hash
$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Användningsfall
- Analys av dataläckor: identifiera den algoritm som används av en komprometterad databas för att bedöma attacksvårigheten.
- Debug: snabbt bekräfta vilken algoritm som genererat ett fingeravtryck hittat i ett API-svar eller en logg.
- Säkerhetsgranskning: upptäcka ett system som fortfarande lagrar lösenord i MD5 eller SHA-1 (att förbjuda).
- Forensik: karakterisera en artefakt i en utredning.
Varför en hash inte är reversibel
En hashfunktion är designad för att vara enkelriktad. Det finns ingen algoritm för "hashavkryptering", eftersom en hash inte är en kryptering: det är en projektion. Flera olika indata kan i teorin producera samma hash (kollision), så även om man känner till ett indata som ger rätt hash har man ingen garanti för att det är det ursprungliga indatat.
I praktiken betyder att "knäcka" en hash att testa massivt med kandidatindata tills man hittar det vars fingeravtryck stämmer. Det är vad ordboks- och brute force-attacker gör.
Inbyggd ordbokssökning
Vårt verktyg integrerar en mini-ordbok med 39 ultrakänsliga lösenord:
tom sträng, password, admin, 123456, qwerty,
letmein osv. Dessa 39 poster är förberäknade på 10 algoritmer
(MD5, SHA-1, SHA-256, SHA-512, MD4, NTLM osv.). Om din hash motsvarar ett av dessa fingeravtryck
returnerar verktyget lösenordet i klartext.
Den här funktionen illustrerar varför enkla hashar inte är anpassade för lösenord: en angripare behöver inte ens beräkna, hen slår upp i en tabell.
Enkel hash vs lösenordshash
Inte alla hashar är likvärdiga för att lagra lösenord:
- Enkla hashar (MD5, SHA-256, SHA-512): designade för att vara snabba, vilket är en defekt när man vill motstå en brute force-attack. De inkluderar inget salt som standard, så två användare med samma lösenord får samma hash, vilket exponerar för förberäknade tabellattacker (rainbow tables).
- Lösenordshashar (bcrypt, scrypt, Argon2): designade för att vara långsamma till sin natur, integrerar ett slumpmässigt salt och en konfigurerbar kostnadsfaktor. Argon2id är idag det rekommenderade state of the art enligt OWASP.
Så använder du verktyget
- Klistra in hashen i inmatningsfältet.
- Verktyget upptäcker formatet (längd, prefix) och föreslår möjliga algoritmer.
- Om hashen motsvarar ett ultrakänsligt lösenord visas ordet i klartext.
- Annars får du listan över kandidatalgoritmer att utforska vidare med ett dedikerat verktyg.
Vanliga frågor
Varför matchas inte min bcrypt-hash mot ordboken?
Bcrypt använder ett unikt slumpmässigt salt per hash: även med lösenordet password,
producerar varje användare en annan hash. Ordboksförberäkning fungerar därför inte.
Det är precis den egenskap som gör bcrypt motståndskraftig mot tabellattacker.
Vad gör jag om flera algoritmer är möjliga för samma längd?
Korsa med andra ledtrådar: hashens källa (Active Directory pekar mot NTLM, Linux
/etc/shadow mot SHA-512 crypt, en gammal MySQL-databas mot MD5 osv.) och det
applikationsmässiga sammanhanget. Vid lika längd är MD5 statistiskt sett mest sannolik på
gamla system.
Hur "knäcker" man en hash i praktiken?
För legitima säkerhetstester (audit, pentest) är standardverktygen John the Ripper och hashcat. De accepterar massiva wordlists (rockyou osv.) och utnyttjar GPU:n för att testa miljarder kandidater per sekund. Genomförbarhet beror på algoritmen: MD5 och SHA-1 ger vika snabbt, bcrypt och Argon2 saktar ner attacken med flera storleksordningar.
Kan den inbyggda ordboken konsulteras?
Ordboken är medvetet minimalistisk (39 poster) och tjänar till att illustrera enkla hashars svaghet på triviala lösenord. För seriös täckning, använd en extern wordlist (rockyou, SecLists) med John the Ripper eller hashcat.
Kan man "avkoda" en hash?
Nej. En hash är inte en kryptering: det finns ingen invers funktion. Varje sajt som lovar att "avkoda en hash" tillämpar i själva verket en uppslagning i en förberäknad databas. Om ditt lösenord är unikt och långt finns det inte med.
Exempelförfrågan
curl -X POST https://cdrn.fr/api/v1/tools/hash-identifier/execute \
-H "Content-Type: application/json" \
-d '{"hash":"..."}'
Indatasschema
| Fält | Typ | Obligatorisk | Standard |
|---|---|---|---|
hash |
text | ✓ | – |
Slutpunkter
GET https://cdrn.fr/api/v1/tools- listar alla tillgängliga verktygGET https://cdrn.fr/api/v1/tools/hash-identifier- hämtar schemat för detta verktygPOST https://cdrn.fr/api/v1/tools/hash-identifier/execute- kör detta verktyg med en JSON-payload