Ik vraag me ineens iets af. In hoeverre is een MD5 (of andere encryptie-methode) gecodeerd wachtwoord eigenlijk uniek?
Stel ik heb een wachtwoord van 17 tekens (lekker lang, dus extra veilig).
Het (fictieve) wachtwoord is: abc_heelveilig_!6
Het (fictieve) ge-encrypte wachtwoord is: A8BSexE90jfK_4qkjjJk40_vMFvz3iAA
Kan het nu gebeuren dat de ge-encrypte versie van mijn 17-karakters-lange wachtwoord heel toevallig hetzelfde is als een heel simpel woord, bijvoorbeeld het Engelse "tree" dat in iedere rainbow-table voorkomt? Of kan die situatie zich niet voordoen?
Dankjewel TJVB. Het zou dus zo kunnen zijn dat mijn oh zo lastige en lange gehashte wachtwoord toevallig overeenkomt met een heel simpel woord dat voorkomt in een rainbow table? :-s Dat is eigenlijk wel heel idioot! Bizar eigenlijk...
Heeft iemand een voorbeeld van twee strings die dezelfde hash krijgen?
Gewoon even uit nieuwsgierigheid? Zou hier ook een vereiste voor zijn, of zouden enkele tekens van 4 karakters lang al een zelfde hash kunnen geven?
@Aar: ja, daar ben ik ook wel erg benieuwd naar. Toch vrij "lullig" als de gehashte versie van jouw mooie wachtwoord "@kjfdkdj_sdfzxCV#!sd9%" hetzelfde resultaat oplevert als de gehashte versie van "kat".
md5 is een paar jaar, ik bedoel 17 jaar, gebroken: http://en.wikipedia.org/wiki/MD5#Collision_vulnerabilities Daarom wordt md5 ook altijd afgeraden. SHA1 is tot op de dag van vandaag nog niet gebroken, maar dat gaat zeker wel gebeuren.
Semi-related: Denk ook aan "Type-coercing comparison operators will convert numeric strings to numbers". PHP zorgt ervoor dat hashes nog makkelijker kunnen botsen:
<?php
if ("61529519452809720693702583126814" == "61529519452809720000000000000000") {
// dit wordt uitgevoerd, PHP denkt dat bovenstaande hashes gelijk zijn...
}
?>