bijvoorbeeld
echo md5("wetenschapsforum");
wordt: f6f072194c4d8a021dcdd7b96682b1f8
de hashwaarde bestaat altijd uit 32 karakters en de mogelijkheid dat 2 woorden dezelfde hashwaarde uitkomen bestaat, maar valt te verwaarlozen.
Als je een hashwaarde van een wachtwoord te weten komt dat je nodig hebt, kun je een dictionary attack gaan uitvoeren op de hashwaarde,
dan zoekt een programma of script, alle text strings met de ingevoerde hash waarde.
Maar als het wachtwoord qsdf54851ezr is, dan heeft een woordenboek hoogst waarschijnlijk dat woord en de hash waarde ervan niet opgeslagen in zijn database.
Nu zou je in theorie met php een script kunnen opstellen die een database maakt van bijvoorbeeld, alle mogelijke text strings met maximaal tien willekeurige karakters, als je er meer dan tien neemt wordt de database te groot.
In praktijk kan je onmogelijk een database gaan opstellen die alle mogelijke strings + de md5 ervan heeft, want als je even doorrekent, dan kan je de grootte van al die mogelijke wachtwoorden achterhalen:
Dit is een berekening die alle mogelijke text strings voor 1-10 karakters lang:
mogelijke karakters: (a-z), (A-Z), (0-9);
totaal # mogelijke karakters: 62
som van mogelijke lengte string: 55
Code: Selecteer alles
lengte string: aantal mogelijkheden (y)
x
62^x
1
62
2 3844
3 238328
4 14776336
5 916132832
6 56800235584
7 3521614606208
8 218340105584896
9 13537086546263552
10
839299365868340224
totaal
3,8154250121056239347367978331257e+98
totaal grootte (in bytes):
3,8154250121056239347367978331257e+98 mogelijkheden met een totaal van 55 verschillende tekens:
(62^55)*55 =2,098483756658093164105238808219e+100 bytes
bits 1.67878700532647e+34
bytes 2.09848375665809e+33
kilobits 1.63944043488914e+31
kilobytes 2.04930054361142e+30
megabits 1.60101604969642e+28
megabytes 2.00127006212053e+27
gigabits 1.56349223603166e+25
gigabytes 1.95436529503958e+24
terabytes 1.90855985843709e+21
petabytes 1.86382798675497e+18
dit is de totale grootte van de database die alle mogelijke strings met de beperking, dat ze uit de karakters (a-z), (A-Z) en (0-9) bestaan, en dat de maximale grootte maar 10 karakters lang is.
ik dacht aan een script, je voert een hashwaarde in en dan gaat het script alle mogelijkheden af, zonder dat deze in een database zitten. het script maakt de mogelijkheden dus live, een voor een en berekent de hashwaarde ervoor, tot het een match vindt met de invoer. maar ik weet niet of en hoe dit mogelijk is en of het in praktijk ook kan worden toegepast, (geheugen errors, berekentijd,...)
graag jullie mening hierover