nordmannen Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 (endret) Hei, Jeg skulle gjerne ha funnet en måte å finne alle mulige kombinasjoner av for eksempel bokstavene og tallene "abc123" i PHP. Det skal alltid være 6 tall i kombinasjonen. Samme tall/bokstav kan alltid komme etter hverandre.(aaaaaa / ab123c / bb32aa /3bc12a er alle greie kombinasjoner) Noen som kan hjelpe meg med dette? Endret 16. februar 2012 av nordmannen Lenke til kommentar
amundfosho Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 Hvis de bare skal kunne brukes en gang blir det 6*5*4*3*2*1 = 720 muligheter. Hvis du skal kunne bare bruke de 6 tegnene men kan bruke samme tegn flere ganger blir det 6*6*6*6*6*6 = 46656 muligheter Lenke til kommentar
nordmannen Skrevet 16. februar 2012 Forfatter Del Skrevet 16. februar 2012 Hvis de bare skal kunne brukes en gang blir det 6*5*4*3*2*1 = 720 muligheter. Hvis du skal kunne bare bruke de 6 tegnene men kan bruke samme tegn flere ganger blir det 6*6*6*6*6*6 = 46656 muligheter takk for svar :-) Glemte å si at det var i PHP Lenke til kommentar
slacky Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 (endret) Antall kombinasjoner - Først må vi vite vilke tegn du tilatter, jeg tenker du tilatter: 26 (a-z) + 10 (0-9) = 36 Da får vi 36^6 = 2,176,782,336 mulige kombinasjoner ved å tillate 36 tegn, og ikke lengre en 6 tegn. Dette kan du enkelt loope gjennom i PHP, du kan f.eks modifisere en PHP-kode jeg tidligere postet i en annen diskusjon, denne gjør ikke det du etterspør, men kan modifiseres ganske enkelt, og prinsippet er det samme.. $hash = md5("aaa123"); $length = 6; //maks seks tegn. define('HASH', $hash); $charset = 'abcdefghijklmnopqrstuvwxyz'; //26 tegn $charset .= '0123456789'; //10 tegn //$charset .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //26tegn (store bokstaver) //$charset .= '~`!@#$%^&*()-_\/\'";:,.+=<>? '; //29 tegn.. //----->-----------------------------------<-----\\ $charset_length = strlen($charset); $startTime = microtime(true); function check($password) { if (hash('md5', $password) == HASH) { global $startTime; $endTime = microtime(true); echo "<br />Match found: ".$password."\r\n"; echo "<br />Time used:"; echo $endTime-$startTime; exit; } } function run($width, $position, $base_string) { global $charset, $charset_length; for ($i = 0; $i < $charset_length; ++$i) { if ($position < $width - 1) { run($width, $position + 1, $base_string . $charset[$i]); } check($base_string . $charset[$i]); } } echo "Target: ". HASH ."\r\n"; run($length, 0, ''); echo "No match found!"; Endret 23. februar 2012 av warpie Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå