Gå til innhold

[Løst] Mulige kombinasjoner


Anbefalte innlegg

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 av nordmannen
Lenke til kommentar
Videoannonse
Annonse

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 av warpie
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...