Het algoritme van een hash identificeren
- Dashboard
- Documentatie
- API
Wat is een cryptografische hash?
Een hash (of cryptografische vingerafdruk) is het resultaat van een functie die invoergegevens van willekeurige grootte (een wachtwoord, een bestand, een tekenreeks) omzet in een tekenreeks van vaste grootte. Deze functie is eenrichtings: vanuit een hash is het wiskundig onmogelijk om de oorspronkelijke invoer te herstellen. Twee identieke invoeren produceren altijd dezelfde hash, maar de minste verandering in de invoer wijzigt het resultaat volledig.
Onze tool identificeert het waarschijnlijke algoritme van een hash op basis van zijn formaat, en probeert een lookup tegen een woordenboek van ultragangbare wachtwoorden vooraf berekend op de belangrijkste algoritmen.
Hoe identificeer ik een hash?
De identificatie berust op drie aanwijzingen:
- De lengte: elk algoritme produceert een vingerafdruk van vaste grootte.
- Het formaat: zuiver hexadecimaal, Base64, of Modular Crypt Format met specifieke voorvoegsels.
- Het voorvoegsel: moderne wachtwoordhashes volgen het formaat
$id$params$salt$hash, waarbijidondubbelzinnig de gebruikte functie identificeert.
Gangbare hexadecimale lengtes
- 8 tekens: CRC32 (controlegetal, geen cryptografische hash)
- 32 tekens: MD5, MD4, NTLM, RIPEMD-128
- 40 tekens: SHA-1, RIPEMD-160
- 64 tekens: SHA-256, SHA3-256
- 96 tekens: SHA-384, SHA3-384
- 128 tekens: SHA-512, SHA3-512, Whirlpool
Een lengte alleen volstaat niet om te besluiten: MD5 en NTLM delen dezelfde grootte van 32 hexa-tekens, bijvoorbeeld. Onze tool geeft dan de lijst van mogelijke algoritmen terug.
Modular Crypt Format-voorvoegsels
Wachtwoordhashes afkomstig van crypt() of moderne bibliotheken gebruiken een
expliciet voorvoegsel:
$1$: MD5 crypt$5$: SHA-256 crypt$6$: SHA-512 crypt$2y$,$2a$,$2b$: Bcrypt (varianten volgens platform)$argon2i$,$argon2id$,$argon2d$: Argon2 (gebruiksvarianten, Argon2id wordt vandaag aanbevolen)
Voorbeeld van een Bcrypt-hash
$2y$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
Gebruiksgevallen
- Analyse van datalekken: het algoritme identificeren dat door een gecompromitteerde database wordt gebruikt om de moeilijkheid van een aanval te evalueren.
- Debug: snel bevestigen welk algoritme een vingerafdruk heeft gegenereerd die is gevonden in een API-antwoord of een log.
- Beveiligingsaudit: een systeem opsporen dat nog steeds wachtwoorden opslaat in MD5 of SHA-1 (te verbieden).
- Forensisch onderzoek: een artefact karakteriseren in een onderzoek.
Waarom een hash niet omkeerbaar is
Een hash-functie is ontworpen om eenrichtings te zijn. Er bestaat geen algoritme voor "hash-ontsleuteling", omdat een hash geen versleuteling is: het is een projectie. Meerdere verschillende invoeren kunnen in theorie dezelfde hash produceren (botsing), dus zelfs als u een invoer kent die de juiste hash produceert, hebt u geen garantie dat het de oorspronkelijke invoer is.
In de praktijk betekent "een hash kraken" massaal kandidaat-invoeren testen tot men die vindt waarvan de vingerafdruk overeenkomt. Dat is wat woordenboek- en brute force-aanvallen doen.
Geïntegreerde woordenboek-lookup
Onze tool integreert een mini-woordenboek van 39 ultragangbare wachtwoorden:
lege tekenreeks, password, admin, 123456, qwerty,
letmein, enz. Deze 39 entries zijn vooraf berekend op 10 algoritmen
(MD5, SHA-1, SHA-256, SHA-512, MD4, NTLM, enz.). Als uw hash overeenkomt met een van deze vingerafdrukken,
geeft de tool u het wachtwoord in cleartext terug.
Deze functionaliteit illustreert waarom eenvoudige hashes niet geschikt zijn voor wachtwoorden: een aanvaller hoeft niet eens te berekenen, hij raadpleegt een tabel.
Eenvoudige hash vs wachtwoordhash
Niet alle hashes zijn gelijk om wachtwoorden op te slaan:
- Eenvoudige hashes (MD5, SHA-256, SHA-512): ontworpen om snel te zijn, wat een gebrek is wanneer men wil weerstaan aan een brute force-aanval. Ze bevatten geen salt standaard, dus twee gebruikers met hetzelfde wachtwoord zullen dezelfde hash hebben, blootstellend aan aanvallen door vooraf berekende tabellen (rainbow tables).
- Wachtwoordhashes (bcrypt, scrypt, Argon2): ontworpen om traag door constructie te zijn, integreren een willekeurige salt en een instelbare kostfactor. Argon2id is vandaag de state of the art aanbevolen door OWASP.
Hoe u de tool gebruikt
- Plak de hash in het invoerveld.
- De tool detecteert het formaat (lengte, voorvoegsel) en stelt de mogelijke algoritmen voor.
- Als de hash overeenkomt met een ultragangbaar wachtwoord, verschijnt het woord in cleartext.
- Anders krijgt u de lijst van kandidaat-algoritmen om verder te onderzoeken met een speciale tool.
Veelgestelde vragen
Waarom wordt mijn bcrypt-hash niet gematcht tegen het woordenboek?
Bcrypt gebruikt een willekeurige salt uniek per hash: zelfs met het wachtwoord password,
produceert elke gebruiker een andere hash. De woordenboek-precalculatie werkt dus niet.
Dat is precies de eigenschap die bcrypt resistent maakt tegen tabelaanvallen.
Wat te doen als meerdere algoritmen mogelijk zijn voor dezelfde lengte?
Kruis met andere aanwijzingen: de bron van de hash (Active Directory wijst naar NTLM, Linux
/etc/shadow naar SHA-512 crypt, een oude MySQL-database naar MD5, enz.), en de
applicatieve context. Bij gelijke lengte blijft MD5 statistisch het meest waarschijnlijk op
oude systemen.
Hoe "kraak" ik een hash in de praktijk?
Voor legitieme beveiligingstests (audit, pentest) zijn de standaardtools John the Ripper en hashcat. Ze accepteren massieve wordlists (rockyou, enz.) en benutten de GPU om miljarden kandidaten per seconde te testen. De haalbaarheid hangt af van het algoritme: MD5 en SHA-1 begeven het snel, bcrypt en Argon2 vertragen de aanval met meerdere ordes van grootte.
Is het geïntegreerde woordenboek raadpleegbaar?
Het woordenboek is bewust minimalistisch (39 entries) en dient om de zwakte van eenvoudige hashes op triviale wachtwoorden te illustreren. Voor een serieuze dekking, gebruik een externe wordlist (rockyou, SecLists) met John the Ripper of hashcat.
Kan men een hash "decoderen"?
Nee. Een hash is geen versleuteling: er bestaat geen inverse functie. Elke site die belooft "een hash te decoderen" past in werkelijkheid een lookup toe in een vooraf berekende database. Als uw wachtwoord uniek en lang is, staat het er niet in.
Voorbeeldverzoek
curl -X POST https://cdrn.fr/api/v1/tools/hash-identifier/execute \
-H "Content-Type: application/json" \
-d '{"hash":"..."}'
Invoerschema
| Veld | Type | Vereist | Standaard |
|---|---|---|---|
hash |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- toont alle beschikbare toolsGET https://cdrn.fr/api/v1/tools/hash-identifier- geeft het schema van deze tool terugPOST https://cdrn.fr/api/v1/tools/hash-identifier/execute- voert deze tool uit met een JSON-payload