Versleutelingsidentifier

Plak een waarde om te identificeren.

Formaat identificeren

U hebt een database-export gemaakt en ziet strings als $2y$10$... of 5f4dcc3b5aa765d61d8327deb882cf99; u moet weten wat u ziet voordat u begint met het kraken of omkeren van de tekst. Deze identificator gebruikt heuristieken voor lengte, karakterset, structuur en voorvoegsel om de meest waarschijnlijke algoritme of codering achter een stuk versleutelde tekst te bepalen.

Hoe identificeer je een versleutelde tekst?

  1. 1

    Plak het voorbeeld

    Een enkele hash, een blob versleutelde tekst, een token of een gecodeerde string.

  2. 2

    Bekijk de overeenkomende formaten

    Het resultaat rangschikt de passende formaten: eerst de meest waarschijnlijke, daarna wat het voorbeeld verder nog kan zijn.

  3. 3

    Kruisverificatie

    Als meerdere formaten passen, gebruik dan een hashcracker of decoder om te bevestigen welke correct is.

  4. 4

    Let op de onzekerheid

    Identificatie op basis van één voorbeeld is zelden definitief; als er niets overeenkomt, geeft het hulpmiddel dat aan.

Formaten die de identificator herkent

Hexadecimale hashes, herkend aan hun lengte (in hoofdletters of kleine letters):

Lengte (hex-tekens) Meest waarschijnlijk
8 CRC32 of een andere 32-bits checksum
32 MD5, MD4 of NTLM
40 SHA-1 of RIPEMD-160
56 SHA-224 of SHA3-224
64 SHA-256 of SHA3-256
96 SHA-384 of SHA3-384
128 SHA-512 of SHA3-512

Zo telt d63dc919e201d7bc4c825630d2cf25fdc93d4b2f0d46706d29038d01 56 tekens: het is de SHA-224-hash van het woord “password”.

Wachtwoordhashes, herkend aan hun prefix en structuur:

  • $2a$, $2b$, $2y$: bcrypt, waarbij de kostenfactor uit het prefix wordt gelezen
  • $1$: md5crypt; $apr1$: Apache MD5 (htpasswd)
  • $5$ en $6$: sha256crypt en sha512crypt
  • $y$: yescrypt; $7$ en $scrypt$: scrypt
  • $argon2id$, $argon2i$, $argon2d$: Argon2
  • $pbkdf2-sha256$ (passlib) en pbkdf2_sha256$ (Django): PBKDF2
  • $P$ en $H$: phpass (WordPress, phpBB); $S$: Drupal 7
  • * gevolgd door 40 hex-tekens: MySQL 4.1+
  • {SSHA}, {SHA} en de andere gangbare LDAP-schema’s

In de gangbare gevallen toont het resultaat ook de hashcat-modus (-m): MD5 0, NTLM 1000, SHA-1 100, SHA-256 1400, SHA-512 1700, bcrypt 3200, md5crypt 500, sha256crypt 7400, sha512crypt 1800, phpass 400, Drupal 7 7900, MySQL 4.1+ 300 en Django PBKDF2-SHA256 10000.

Sleutels, tokens en identificatiecodes:

  • PEM-blokken (-----BEGIN ...-----): privésleutels (RSA, EC, OpenSSH, PKCS #8), met een wachtwoord beveiligde privésleutels, publieke sleutels, X.509-certificaten en certificaataanvragen
  • OpenPGP met ASCII-armor: versleutelde berichten (BEGIN PGP MESSAGE), sleutelblokken en handtekeningen
  • Publieke OpenSSH-sleutels (ssh-rsa, ssh-ed25519, ecdsa-sha2-...)
  • JSON Web Tokens: de header wordt gedecodeerd om alg en typ te tonen, en een token van vijf delen met een enc-veld is een versleutelde JWE
  • UUID’s, met hun versie (een identificatiecode, geen hash)

Coderingen, alleen als niets specifiekers overeenkomt:

  • Hex, Base32, Base64 en Base64url, met de gedecodeerde lengte in bytes, en URL-codering (procentcodering).
  • Hex- of Base64-gegevens waarvan de gedecodeerde lengte een veelvoud van 16 bytes is, kunnen de uitvoer van een blokcijfer zoals AES zijn; bij 128, 256, 384 of 512 bytes kan het ook om met RSA versleutelde gegevens of een handtekening gaan. Base64- of Base32-gegevens van 16, 20, 28, 32, 48 of 64 bytes kunnen een ruwe MD5-, SHA-1- of SHA-2-hash zijn.

Wat identificatie niet kan vertellen

  • Het exacte algoritme met 100% zekerheid. Een string van 64 hex-tekens wordt gemeld als SHA-256 of SHA3-256, maar BLAKE2s en andere 256-bits hashes zien er precies hetzelfde uit. MD5-, MD4- en NTLM-hashes hebben allemaal 32 hex-tekens.
  • Met welk versleutelingsalgoritme een blob is versleuteld. Versleutelde gegevens zien er willekeurig uit. De lengte beperkt alleen de opties, dus AES of RSA is een mogelijkheid, nooit een zekerheid.
  • Sleutelsterkte. Een bcrypt-hash toont de kostenfactor in zijn prefix ($2y$10$ = kostenfactor 10), maar niet de sterkte van het onderliggende wachtwoord.
  • Of er een salt is gebruikt. Moderne wachtwoordhashes (bcrypt, Argon2) zijn altijd gesalt; oude (kale MD5/SHA) kunnen dat wel of niet zijn.
  • De platte tekst. Identificatie draait de hash niet terug; kraken is een apart proces en alleen legaal op uw eigen gegevens.

Wanneer de identificator ernaast zit

  • Tokens met een eigen prefix. Apps omhullen een hash soms met hun eigen prefix; verwijder dat omhulsel eerst.
  • Dubbele codering. Een binaire hash in hex die daarna in Base64 is verpakt, wordt verkeerd herkend. Decodeer één keer en controleer opnieuw.
  • Ongebruikelijke lengtes. Ingekorte hashes (de eerste 16 tekens van een SHA-256, gebruikt als ID) worden als gewone hexgegevens getoond, omdat die lengte niet overeenkomt met een hash uit de tabel hierboven.
  • Meerdere waarden tegelijk. De controle leest één waarde. Als u een lijst met hashes plakt, wordt alleen de eerste regel gecontroleerd; plak de andere één voor één.

Toepassingsvoorbeelden

  • Beveiligingsaudits: het in kaart brengen van hashtypen in de hele codebasis vóór een cryptomigratie.
  • CTF-challenges: een snelle eerste poging om een onbekende blob te doorgronden.
  • Incidentrespons: het formaat van gelekte inloggegevens identificeren.
  • Frameworkdebuggen: vaststellen welke codering een bibliotheek gebruikt.

Herinnering aan ethische aspecten

Het bepalen van een hashformat valt onder passieve onderzoeksmethoden. Het kraken van een hash van iemand anders zonder toestemming is in de meeste rechtsgebieden in strijd met de wetten tegen computerfraude. Werk alleen met hashes die u zelf bezit of waarvoor u bevoegd bent om ze te analyseren.

Veelgestelde vragen

Deels: MD5 telt 32 hex-tekens, SHA-1 telt er 40. Vallen ze binnen hetzelfde lengtebereik, dan zijn ze niet te onderscheiden op basis van de hash alleen. De context (naam van de databasekolom, standaardinstellingen van het framework, een gelekt schema) geeft meestal de doorslag.

Nee. Het identificeert alleen. Het terugdraaien van een hash of het ontsleutelen van een versleutelde tekst vereist aparte tools (plus de sleutel, of rekenkracht om te kraken), en is alleen legaal op je eigen materiaal.

Argon2id (of bcrypt met een hoge kostenfactor) is de huidige aanbeveling. PBKDF2-SHA256 en scrypt zijn nog steeds acceptabel. Kale MD5, SHA-1 of ongesalte SHA-256 zijn niet veilig voor het opslaan van wachtwoorden.

Nee. De waarde die u plakt, wordt naar onze server gestuurd voor de formaatcontrole, maar wordt in geen enkele database opgeslagen en niet aan de paginalink toegevoegd. Tussen de twee stappen wordt de waarde in dit browsertabblad bewaard, en met “Begin opnieuw” wist u die.

Gerelateerde tools

Tool beschikbaar in andere talen