Gå til innhold

Generere ord


Gjest Slettet-i6XWZnn85h

Anbefalte innlegg

Gjest Slettet-i6XWZnn85h
Skrevet

Eg vil lage ulike ord av både store og små bokstave og tall fra 0 til 9

abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ1234567890

 

 

Å eg hat funne ut ein måte eg tru eg grei å gjøre dette på.

 

Hvis man legger hver bokstav /tall inn slik

 

$array[’1’] = ”1”

$array[’2’] = ”2”

 

 

Heilt opp til alle ord og bokstaver er brukt opp..

Med alle store og små bokstaver å tall så har man 68 stykk.

 

Så starter problemet mitt då.

 

Sånn som eg he tenkt å løyse dette bli som ein kodelås.

Her ska eg løyse eit ord på 4 siffer så begynner eg sånn som dette:

 

1-1-1-1

 

De tallene er nummeret i arrayen.

 

Så kommer 1-1-1-2 så 1-1-1-3 heilt til den er på 1-1-1-68.

 

Etter at den har gjort dette så går den slik som dette

 

1-1-2-1 så 1-1-2-2 til slutt så er den på 1-1-2-68.

 

skjønner dere hva eg meinere med dette?

Noen som har ein grei måte å løyse denne på?

 

For hvert ord den lager så legger eg det inn i ein ny array. Og for hver gang den passerer 68 ord så skal alle ordene settes inn i ein mysql database så fjernes ordene fra arrayen å fortsetter på å generere ord.

 

Er det noen som kan komme med noen forslag på hvordan eg kan løse dette?

Videoannonse
Annonse
Skrevet

Du skal brute force, med andre ord?

 

Ingen ekspert på det området, men du trenger vel en løkke av et slag, og 4 variabler for å holde styr på hvor langt i prosessen du er kommet. Én for hver av de fire sifrene dine.

Gjest Slettet-i6XWZnn85h
Skrevet

Ja det er vel det det heite.

 

Eg vil kunne gå opp til 5 tegn å 6 tegn også 7 8 9 10 etter hvert.

Skrevet

Eg ser ikkje poenget med å finne opp hjulet på nytt. Til cracking er det få ting som overgår John the ripper, som kan gjere alt. Og php er notorisk uegna til slike ting som skal kjøre i løkker på den måten.

Gjest Slettet-i6XWZnn85h
Skrevet (endret)

Kan egentlig veldig lite ang andre språk.. Men hva lønner seg da? c++? å det er ikkje for å finne på noe som allerede finnes. det er for lære.

 

Men veit du om noe som allerede eksisterer så spør vil eg se det om du ønsker å dele det?

Endret av Slettet-i6XWZnn85h
Skrevet

Sa du ikkje 0-9?

Du seier 1-1-1-68.

Det blir vel berre 1-1-1-9.

Viss det er slik, så er det 9^4=59049 kombinasjoner. (med berre tal, viss eg ikkje har rekna feil. :))

Scriptet vil vel helde på så lenge at du må endre max-kjøretid viss du skal bruke PHP?

Skrevet (endret)

Kanskje dette kan hjelpe..

 

<?php
$CFG['charset']   = "abcdefghijklmnopqrstuvwxyz1234567890";
$CFG['strlen']    = 4;


$CALC['lastpos']   = strlen($CFG['charset']);
$CALC['noStrings'] = pow($CALC['lastpos'],$CFG['strlen']);

for($i=0; $i<$CFG['strlen']; $i++) {
       $CALC['char'][$i]['pos']=0;
       if($i>0) {
           $CALC['char'][$i]['int']=pow($CALC['lastpos'],$i);
       } else {
           $CALC['char'][$i]['int']=0;
       }
       $CALC['char'][$i]['inc']=0;
}

$allStrsings=array();


print_r($CALC);
print_r($CFG);
echo "Looks OK? Press CTRL+C to abort.. starting in 2 seconds..";
sleep(2);
echo "\nStarting:\n";


for($i=0; $i<$CALC['noStrings']; $i++) {
   $str = "";
   reset($CALC['char']);
   while(list($id, $charData)=each($CALC['char'])) {
       $str .= substr($CFG['charset'], $CALC['char'][$id]['pos'],1);
       $CALC['char'][$id]['inc']++;
       if($CALC['char'][$id]['inc']>=$CALC['char'][$id]['int'])     {
           $CALC['char'][$id]['pos']++;
           $CALC['char'][$id]['inc']=0;
       }
       if($CALC['char'][$id]['pos']>=$CALC['lastpos']) {
           $CALC['char'][$id]['pos']=0;
       }
   }
   echo $str."\n";       
   $ii=$i+1; 
      
}
?> 

 

Bare noe jeg laget for lengesiden (litt modifisert).

 

Skjønner ikke hva som er så gale å bruke PHP til slike ting.. fungerer utmerket.. ;)

Endret av xqus
Skrevet

Funka ganske så greit den der. Vær dog obs på at å generere sånne lister tar litt tid. Mitt script tima ut etter 60 sekunder (default sikkerhets ting), og hadde da klart å lage drøye 1,5 millioner kombinasjoner.

 

:-)

Gjest Slettet-i6XWZnn85h
Skrevet (endret)

herlig! det fungere jo perfekt!

Grunnen til at man ikkje brurde å bruke php er at det finnes mange andre raskere språk som egner seg for sånne ting.. som kan generere opp til 5 mill ord i sek på denne lille maskinen min.

 

men dette er supert.

 

Lure på hvordan eg kan begynne på eeee? må eg bare forfalske $i?

Endret av Slettet-i6XWZnn85h
Gjest Slettet-i6XWZnn85h
Skrevet

Selfølgelig gjør eg det ;)

 

Genialt at man får opp hva den holder på med øyeblikelig.. kan sitte å se på ordene den generere ;)

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...