Hash-identificatie is het proces waarbij wordt bepaald welk cryptografisch hash-algoritme een bepaalde digest heeft gegenereerd. Cryptografische hashfuncties zoals MD5, SHA-1 en SHA-256 produceren elk uitvoer met een vaste lengte, en die uitvoerlengte is het primaire signaal om een onbekende hash te identificeren. Wanneer je een hexadecimale string tegenkomt in een database-dump, configuratiebestand of API-response, vertelt een hash identifier tool je welk algoritme deze waarschijnlijk heeft gegenereerd.
Elk hash-algoritme zet willekeurige invoergegevens om naar een uitvoer met een vaste grootte, de digest genaamd. MD5 produceert altijd 128 bits (32 hex-tekens), SHA-1 altijd 160 bits (40 hex-tekens) en SHA-256 altijd 256 bits (64 hex-tekens). Deze deterministische uitvoerlengte maakt algoritmische identificatie mogelijk zonder toegang tot de originele invoer of de hash-code.
Identificatie op basis van lengte alleen is niet altijd definitief. Meerdere algoritmen delen dezelfde uitvoergrootte — zo produceren SHA-256 en SHA3-256 allebei hex-digests van 64 tekens. In zulke gevallen geeft een hash identifier een lijst van kandidaat-algoritmen, gerangschikt op prevalentie. Contextuele aanwijzingen zoals het bronsysteem, het coderingsformaat (hex vs. Base64) en de aanwezigheid van algoritme-prefixen (zoals '$2b$' voor bcrypt) beperken de mogelijkheden verder.
Waarom een hash identifier gebruiken?
Onbekende hashes komen regelmatig voor bij beveiligingsaudits, databasemigraties en forensisch onderzoek. Een hash identifier verwijdert het giswerk en wijst je binnen seconden naar het juiste algoritme.
⚡
Directe detectie
Plak een hash en ontvang onmiddellijk kandidaat-algoritmen. Geen handmatig tekens tellen of naslagwerken raadplegen — de tool koppelt hex-lengtes automatisch aan alle overeenkomende algoritmen.
🔒
Privacy-first analyse
Alle identificatie verloopt volledig in je browser via JavaScript. De hash-waarde verlaat je apparaat nooit, wat belangrijk is bij het analyseren van wachtwoord-hashes, authenticatietokens of gevoelig forensisch bewijsmateriaal.
📋
Volledige algoritmedekking
Detecteert MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 en hun SHA-3-tegenhangers. De referentietabel dekt de volledige SHA-2- en SHA-3-families plus veelgebruikte alternatieven zoals RIPEMD-160 en BLAKE2.
🚫
Geen account of installatie
Werkt direct in elke moderne browser. Geen registratie, geen API-sleutel, geen CLI-tool te installeren. Sla het op als bladwijzer en gebruik het wanneer je een onbekende hash tegenkomt — op elk besturingssysteem, elk apparaat.
Toepassingen van Hash Identifier
Beveiligingsaudits
Tijdens penetratietests bepaalt het identificeren van wachtwoord-hash-algoritmen in gelekte databases de aanpak voor het kraken. MD5- en SHA-1-hashes wijzen op zwakke beveiliging en kunnen prioriteit krijgen bij herstelwerkzaamheden.
Databasemigratie
Bij het migreren van gebruikersrecords tussen systemen moet het opgeslagen wachtwoord-hash-algoritme bekend zijn om de nieuwe authenticatielaag correct te configureren. Een verkeerde identificatie zorgt ervoor dat alle aanmeldingen mislukken.
DevOps en CI/CD
Build-pipelines bevatten vaak checksums voor artefactverificatie. Door te bepalen of een checksum SHA-256 of SHA-512 is, gebruik je het juiste verificatiecommando in je deployment-scripts.
Digitale forensica
Forensisch onderzoekers komen hash-digests tegen in bestandsintegriteitslogboeken, blockchainrecords en bewijsmetadata. Het identificeren van het algoritme is een vereiste voor het verifiëren van de bewijsketen.
API-integratie
Externe API's retourneren soms hash-waarden zonder het gebruikte algoritme te documenteren. Door het hash-type uit de response te identificeren, kun je je webhook-handtekeningverificatie of checksumvalidatie correct configureren.
Cryptografie leren
Studenten die cryptografiecursussen volgen, kunnen hashes van verschillende algoritmen plakken en direct de relatie zien tussen algoritmekeuze, uitvoerlengte en beveiligingseigenschappen.
Referentietabel hash-algoritme lengtes
De onderstaande tabel koppelt elk veelgebruikt hash-algoritme aan zijn uitvoergrootte in bits, hex-tekens en ruwe bytes. Dit is de primaire opzoektabel die hash-identificatietools gebruiken. Wanneer meerdere algoritmen dezelfde hex-lengte delen, is aanvullende context nodig om ze te onderscheiden.
Algoritme
Bits
Hex-tekens
Bytes
Opmerkingen
MD5
128
32
16
Broken — collisions trivial since 2004
SHA-1
160
40
20
Deprecated — SHAttered attack (2017)
SHA-224
224
56
28
Truncated SHA-256; rarely used standalone
SHA-256
256
64
32
Current standard; TLS, Git, Bitcoin
SHA-384
384
96
48
Truncated SHA-512; CNSA Suite approved
SHA-512
512
128
64
Maximum SHA-2 output; large-data hashing
SHA3-256
256
64
32
Keccak-based; NIST alternative to SHA-2
SHA3-512
512
128
64
Keccak-based; highest SHA-3 strength
RIPEMD-160
160
40
20
Used in Bitcoin address derivation
BLAKE2s
256
64
32
Faster than SHA-256; 256-bit output
Hash-lengtes onderscheiden
Sommige hex-lengtes komen overeen met meerdere algoritmen. De twee meest voorkomende ambiguïteiten zijn hashes van 64 tekens (SHA-256 vs. SHA3-256) en hashes van 40 tekens (SHA-1 vs. RIPEMD-160). Zo onderscheid je ze wanneer lengte alleen onvoldoende is.
64 hex-tekens: SHA-256 vs. SHA3-256
Beide produceren 256-bit (64-teken) digests. SHA-256 is in de praktijk verreweg het meest gebruikelijk — Git-commits, TLS-certificaten, Bitcoin-blokken en de meeste API-handtekeningen gebruiken SHA-256. SHA3-256 is doorgaans alleen te vinden in systemen die expliciet NIST SP 800-185-conformiteit of Keccak-gebaseerde constructies vereisen. Raadpleeg de documentatie van het bronsysteem ter bevestiging.
40 hex-tekens: SHA-1 vs. RIPEMD-160
SHA-1 is de veruit meest voorkomende 160-bit hash — historisch gebruikt in Git (vóór de overgang naar SHA-256), TLS en code-ondertekening. RIPEMD-160 komt voornamelijk voor bij het genereren van Bitcoin-adressen (HASH160 = SHA-256 gevolgd door RIPEMD-160). Als de hash afkomstig is uit een cryptocurrency-context, overweeg dan RIPEMD-160; anders is SHA-1 de meest waarschijnlijke kandidaat.
Codevoorbeelden
Hieronder staan werkende implementaties van hash-identificatie op basis van hex-lengte in vier talen. Elke functie valideert de hex-codering, zoekt het aantal tekens op en retourneert alle overeenkomende algoritmen.
package main
import (
"fmt"
"regexp"
)
var hexPattern = regexp.MustCompile("^[0-9a-fA-F]+$")
var hashLengths = map[int][]string{
32: {"MD5"},
40: {"SHA-1", "RIPEMD-160"},
56: {"SHA-224", "SHA3-224"},
64: {"SHA-256", "SHA3-256", "BLAKE2s"},
96: {"SHA-384", "SHA3-384"},
128: {"SHA-512", "SHA3-512", "BLAKE2b"},
}
func identifyHash(hex string) []string {
if !hexPattern.MatchString(hex) {
return []string{"Not a hex-encoded hash"}
}
if algos, ok := hashLengths[len(hex)]; ok {
return algos
}
return []string{fmt.Sprintf("Unknown (%d hex chars)", len(hex))}
}
func main() {
fmt.Println(identifyHash("d41d8cd98f00b204e9800998ecf8427e"))
// → [MD5]
}
CLI (Bash)
#!/bin/bash
# Identify a hash from the command line by character count
hash="$1"
if [[ ! "$hash" =~ ^[0-9a-fA-F]+$ ]]; then
echo "Not a hex-encoded hash"
exit 1
fi
len=${#hash}
case $len in
32) echo "MD5 (128-bit)" ;;
40) echo "SHA-1 or RIPEMD-160 (160-bit)" ;;
56) echo "SHA-224 or SHA3-224 (224-bit)" ;;
64) echo "SHA-256 or SHA3-256 (256-bit)" ;;
96) echo "SHA-384 or SHA3-384 (384-bit)" ;;
128) echo "SHA-512 or SHA3-512 (512-bit)" ;;
*) echo "Unknown hash length: $len chars" ;;
esac
# Usage: ./identify.sh d41d8cd98f00b204e9800998ecf8427e
# → MD5 (128-bit)
Veelgestelde vragen
Hoe werkt hash-identificatie?
Hash-identificatie is primair gebaseerd op de lengte van de hex-gecodeerde digest. Elk hash-algoritme produceert een vast aantal uitvoerbits: MD5 geeft 128 bits (32 hex-tekens), SHA-1 geeft 160 bits (40 hex-tekens), SHA-256 geeft 256 bits (64 hex-tekens), enzovoort. De identifier meet de stringlengte, verifieert dat deze alleen hexadecimale tekens bevat en koppelt deze aan bekende algoritme-uitvoergroottes.
Kan een hash identifier het exacte algoritme met zekerheid bepalen?
Niet altijd. Meerdere algoritmen kunnen dezelfde uitvoerlengte produceren. SHA-256 en SHA3-256 geven allebei 64 hex-tekens. SHA-1 en RIPEMD-160 geven allebei 40 hex-tekens. In zulke gevallen retourneert de tool alle kandidaten. Je hebt context nodig — het bronsysteem, documentatie of algoritme-prefixen — om tot één algoritme te komen.
Wat als mijn hash Base64-gecodeerd is in plaats van hex?
Base64-gecodeerde hashes gebruiken een andere tekenset (A-Z, a-z, 0-9, +, /) en hebben andere lengtes dan hun hex-equivalenten. Een 256-bit hash bestaat uit 44 Base64-tekens maar 64 hex-tekens. Decodeer de Base64-string eerst naar ruwe bytes en controleer vervolgens de byte-lengte: 16 bytes = MD5, 20 bytes = SHA-1, 32 bytes = SHA-256, 48 bytes = SHA-384, 64 bytes = SHA-512.
Is het veilig om wachtwoord-hashes in een online identifier te plakken?
Deze tool draait volledig in je browser — er worden geen gegevens naar een server verzonden. De hash verlaat je apparaat nooit. Voor maximale operationele veiligheid tijdens een formele audit kun je dit verifiëren door het netwerktabblad in de ontwikkelaarstools van je browser te inspecteren, of door de tool offline te gebruiken nadat de pagina is geladen.
Waarom wordt MD5 nog steeds gebruikt als het cryptografisch gebroken is?
MD5 is gebroken voor collision resistance — een aanvaller kan twee verschillende invoerwaarden maken die dezelfde hash produceren. MD5 wordt echter nog steeds gebruikt in niet-beveiligingsgerelateerde contexten: bestandschecksums voor downloadverificatie, cachesleutels, deduplicatie en ETags in HTTP. Voor deze doeleinden zijn onbedoelde botsingen astronomisch onwaarschijnlijk en zijn opzettelijke aanvallen geen zorg. MD5 mag niet worden gebruikt voor wachtwoord-hashing, digitale handtekeningen of certificaatverificatie.
Hoe identificeer ik bcrypt-, scrypt- of Argon2-hashes?
Wachtwoord-hashfuncties zoals bcrypt, scrypt en Argon2 gebruiken kenmerkende string-prefixen in plaats van ruwe hex-uitvoer. Bcrypt-hashes beginnen met '$2a$', '$2b$' of '$2y$' gevolgd door een kostfactor. Argon2-hashes beginnen met '$argon2id$' of '$argon2i$'. Scrypt-hashes beginnen doorgaans met '$scrypt$'. Dit zijn geen ruwe cryptografische digests, dus op lengte gebaseerde identificatie is niet van toepassing — het prefix zelf identificeert het algoritme.
Wat is het verschil tussen SHA-2 en SHA-3?
SHA-2 (met SHA-256, SHA-384 en SHA-512) is gebaseerd op de Merkle-Damgard-constructie, ontworpen door de NSA en gestandaardiseerd in FIPS 180-4. SHA-3 (SHA3-256, SHA3-384, SHA3-512) is gebaseerd op de Keccak sponge-constructie, geselecteerd via een openbare NIST-competitie en gestandaardiseerd in FIPS 202. Ze produceren dezelfde uitvoerlengtes op overeenkomende beveiligingsniveaus, maar gebruiken fundamenteel verschillende interne structuren. SHA-3 is ontworpen als reserveoptie voor het geval er structurele zwakheden worden ontdekt in SHA-2, hoewel dergelijke zwakheden nog niet zijn aangetoond.