Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> błąd przy tworzeniu listy md5
siurek22
post
Post #1





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

Ostrzeżenie: (0%)
-----


Napisałem oto taki skrypt:
  1. <?php
  2.     $alphabet = array(
  3.                 1=>'a',
  4.                 2=>'b',
  5.                 3=>'c',
  6.                 4=>'d',
  7.                 5=>'e',
  8.                 6=>'f',
  9.                 7=>'g',
  10.                 8=>'h',
  11.                 9=>'i',
  12.                 10=>'j',
  13.                 11=>'k',
  14.                 12=>'l',
  15.                 13=>'m',
  16.                 14=>'n',
  17.                 15=>'o',
  18.                 16=>'p',
  19.                 17=>'q',
  20.                 18=>'r',
  21.                 19=>'s',
  22.                 20=>'t',
  23.                 21=>'u',
  24.                 22=>'v',
  25.                 23=>'w',
  26.                 24=>'x',
  27.                 25=>'y',
  28.                 26=>'z',
  29.                 27=>'0',
  30.                 28=>'1',
  31.                 29=>'2',
  32.                 30=>'3',
  33.                 31=>'4',
  34.                 32=>'5',
  35.                 33=>'6',
  36.                 34=>'7',
  37.                 35=>'8',
  38.                 36=>'9',
  39.                 37=>'-',
  40.                 38=>'_'
  41.                 );
  42.         $num=1000;
  43. $z=0;
  44. $i=0;
  45.     while ($i < $num) {
  46.     $los=@mysql_query("SELECT * FROM ile");
  47.                 $logs=@mysql_result($los,$z,"ile");
  48.                 $logs2=@mysql_result($los,$z,"ile2");
  49.                 $logs3=@mysql_result($los,$z,"ile3");
  50.                 $logs4=@mysql_result($los,$z,"ile4");
  51.                 $logs5=@mysql_result($los,$z,"ile5");
  52.                 $logs6=@mysql_result($los,$z,"ile6");
  53.                 $logs7=@mysql_result($los,$z,"ile7");
  54.                 $logs8=@mysql_result($los,$z,"ile8");
  55.                 $logs9=@mysql_result($los,$z,"ile9");
  56.         $aza='1';
  57.         $aba='39';    
  58.                     if($logs9=='38')
  59.                 {
  60.                 mysql_query("UPDATE ile SET ile9=0, ile8=ile8+1 WHERE id=1");
  61.                 }    
  62.                 if($logs8==$aba)
  63.                 {
  64.                 mysql_query("UPDATE ile SET ile8='$aza', ile7=ile7+1 WHERE id=1");    
  65.                             }    
  66.                     if($logs7==$aba)
  67.                 {
  68.                 mysql_query("UPDATE ile SET ile7='$aza', ile6=ile6+1 WHERE id=1");
  69.                 }    
  70.                 if($logs6==$aba)
  71.                 {
  72.                 mysql_query("UPDATE ile SET ile6='$aza', ile5=ile5+1 WHERE id=1");
  73.                 }    
  74.                 if($logs5==$aba)
  75.                 {
  76.                 mysql_query("UPDATE ile SET ile5='$aza', ile4=ile4+1 WHERE id=1");
  77.                 }    
  78.                                 if($logs4==$aba)
  79.                 {
  80.                 mysql_query("UPDATE ile SET ile4='$aza', ile3=ile3+1 WHERE id=1");
  81.                 }    
  82.                                 if($logs3==$aba)
  83.                 {
  84.                 mysql_query("UPDATE ile SET ile3='$aza', ile2=ile2+1 WHERE id=1");
  85.                 }    
  86.                                 if($logs2==$aba)
  87.                 {
  88.                 mysql_query("UPDATE ile SET ile2='$aza', ile1=ile1+1 WHERE id=1");
  89.                 }    
  90.                                                 if($logs==0)
  91.                 {$logs='';}
  92.                 if($logs2==0)
  93.                 {$logs2='';}
  94.                 if($logs3==0)
  95.                 {$logs3='';}
  96.                 if($logs4==0)
  97.                 {$logs4='';}    
  98.                 if($logs5==0)
  99.                 {$logs5='';}
  100.                 if($logs6==0)
  101.                 {$logs6='';}
  102.                 if($logs7==0)
  103.                 {$logs7='';}    
  104.                             if($logs8==0)
  105.                 {$logs8='';}    
  106.                             if($logs9==0)
  107.                 {$logs9='';}
  108.                                     $litera=$alphabet[$logs];
  109.     $litera2=$alphabet[$logs2];
  110.     $litera3=$alphabet[$logs3];
  111.     $litera4=$alphabet[$logs4];
  112.     $litera5=$alphabet[$logs5];
  113.     $litera6=$alphabet[$logs6];
  114.     $litera7=$alphabet[$logs7];
  115.     $litera8=$alphabet[$logs8];
  116.     $litera9=$alphabet[$logs9];
  117.     $haslo=$litera.$litera2.$litera3.$litera4.$litera5.$litera6.$litera7.$litera8.$litera9;
  118.     $md5=md5($haslo);
  119.                 
  120.     @mysql_query("INSERT INTO md5 VALUES ('','$haslo','$md5')");    
  121.     @mysql_query("UPDATE ile SET ile9=ile9+1");
  122.         
  123.     $i++;
  124.     }
  125. ?>


ktory kozysta z tabel

  1. <?php
  2. $query1= "CREATE TABLE md5
  3. (id int(60) NOT NULL auto_increment,
  4. haslo varchar(15) NOT NULL, 
  5. pass varchar(34) NOT NULL, 
  6.  
  7. PRIMARY KEY (id))";
  8. mysql_query($query1);
  9.  
  10. $query2= "CREATE TABLE ile
  11. (id int(60) NOT NULL auto_increment,
  12. ile int(2) NOT NULL, 
  13. ile2 int(2) NOT NULL, 
  14. ile3 int(2) NOT NULL, 
  15. ile4 int(2) NOT NULL, 
  16. ile5 int(2) NOT NULL, 
  17. ile6 int(2) NOT NULL, 
  18. ile7 int(2) NOT NULL, 
  19. ile8 int(2) NOT NULL, 
  20. ile9 int(2) NOT NULL, 
  21.  
  22. PRIMARY KEY (id))";
  23. mysql_query($query2);
  24. ?>


skrypt niby działa poprawnie ale do czasu gdy zajrzy się zawartości tabeli md5

jak widać na obrazku przy rekordzie 1483 który powinien zawierać "aaa" mamy tylko "a" sytuacja powtarza się przy każdym wyrażeniu 3 znakowym i wyżej

siedzę nad tym już 3 dzień i nie mogę dojść dlaczego tak się dzieje sad.gif

Ten post edytował siurek22 3.05.2008, 22:24:31
Go to the top of the page
+Quote Post
webdice
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Popraw bbcode na odpowiednie.
Go to the top of the page
+Quote Post
siurek22
post
Post #3





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

Ostrzeżenie: (0%)
-----


ok juz poprawilem bbcode
Go to the top of the page
+Quote Post
DeyV
post
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




kilka pytań:
- czy w tabeli ile jest choć 1 rekord?
- dlaczego korzystasz z tabeli ile, zamiast przechowywać tą wartość w tablicy?
- co tak naprawdę chcesz osiągnąć? Generator kodów md5?


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
siurek22
post
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

Ostrzeżenie: (0%)
-----


1) tak jest rekord ktory przy starcie ma wartosci
id | ile | ile2 | ile3 | ile4 | ile5 | ile6 | ile7 | ile8 | ile9
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1

2) skrypt będzie uruchamiany wielokrotnie więc trzymam dane w mysql wiem że mogę zapisywać dane do mysql pod koniec wykonania skryptu ale gdy dam pętle na 100000 i akurat mi siądzie prąd to troche szkoda
3) chcę zrobić baze hashy md5 oczywiście planuje skończyć na hasłach 6 znakowych bo gdyby mój pc miałby listować dla np 9 znakowych to niewiem czy dożyłbym czasu kiedy by skończył to robić tongue.gif chyba że ktoś jest tak chojny i użyczy mi serwerowni :] (w co wątpie)
Go to the top of the page
+Quote Post
wert1
post
Post #6





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

Ostrzeżenie: (0%)
-----


siurek22, niby w sql nie widac ale jak się wyciągnie przez php to jest winksmiley.jpg

  1. <?
  2. $_1 = $_GET['md5'];
  3.  
  4. $query="SELECT haslo FROM md5 WHERE pass='".$_1."'";
  5. $result=mysql_query($query);
  6.  
  7. list($md5) = mysql_fetch_array ($result, MYSQL_NUM);
  8. echo $md5;
  9. ?>


ps: mógłbys napisać na gg//6865186

bawiłem się tym skryptem i mam już wszyskie hache do aaaa tongue.gif


--------------------
"Homo sum, humani nihil a me alienum puto."
"Necessitas ultimum et maximum telum est."
"Ventem seminabunt et turbinem metent."
"Gallia est omnis divisa in partes tres..."
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Skoro bawicie się w generowanie tabeli z hasłami md5 może przyda wam się moja funkcja, której zadaniem jest tworzenie różnych kombinacji na podstawie dostarczonej tablicy.
  1. <?php
  2. function array_combination(&$array, &$chars, $length, $startWith = '', $currentLength = 0) {
  3. if ($currentLength < $length) {
  4. foreach ($chars as $char) {
  5. array_push($array, $startWith.$char);
  6.  
  7. array_combination($array, $chars, $length, $startWith.$char, $currentLength+1);
  8. }
  9. }
  10. }
  11.  
  12. $array = array();
  13. $chars = array_merge(range('a', 'z'), range('A', 'Z'), range('0', '9'), array('-', '_'));
  14.  
  15. array_combination($array, $chars, 3);
  16.  
  17. print_r($array);
  18. ?>

Przyjemnej zabawy biggrin.gif
Go to the top of the page
+Quote Post
pyro
post
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(wert1 @ 10.05.2008, 12:55:13 ) *
siurek22, niby w sql nie widac ale jak się wyciągnie przez php to jest winksmiley.jpg

  1. <?php
  2. $_1 = $_GET['md5'];
  3.  
  4. $query=&#092;"SELECT haslo FROM md5 WHERE pass='\".$_1.\"'\";
  5. $result=mysql_query($query);
  6.  
  7. list($md5) = mysql_fetch_array ($result, MYSQL_NUM);
  8. echo $md5;
  9. ?>


ps: mógłbys napisać na gg//6865186

bawiłem się tym skryptem i mam już wszyskie hache do aaaa tongue.gif


o ile dobrze pamietam nazwy zmiennych nie moge sie rozpoczynac od '_' poza superglobalnymi...


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
webdice
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(pyro @ 10.05.2008, 14:34:19 ) *
o ile dobrze pamietam nazwy zmiennych nie moge sie rozpoczynac od '_' poza superglobalnymi...


To źle pamiętasz. Polecam lekturę.
Go to the top of the page
+Quote Post
wert1
post
Post #10





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

Ostrzeżenie: (0%)
-----


ustawiłem sobie crona z tym skrypcikiem co minute na 3 godziny tongue.gif

wróciłem a tu patrze :


http://wert.waw.pl/wert/spam/php/123.PNG

normalnie <szok> ktoś wie dlaczego ?



--------------------
"Homo sum, humani nihil a me alienum puto."
"Necessitas ultimum et maximum telum est."
"Ventem seminabunt et turbinem metent."
"Gallia est omnis divisa in partes tres..."
Go to the top of the page
+Quote Post
phpion
post
Post #11





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(wert1 @ 10.05.2008, 19:42:41 ) *
normalnie <szok> ktoś wie dlaczego ?

Źle napisany skrypt?
Go to the top of the page
+Quote Post
wlamywacz
post
Post #12





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

Ostrzeżenie: (20%)
X----


Ustaw w bazie pole tam gdzie masz niezakodowane hasło na unique i po kłopocie jeśli nie możesz sobie poradzić ze skryptem tongue.gif
Go to the top of the page
+Quote Post
pojas
post
Post #13





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 31.03.2006

Ostrzeżenie: (0%)
-----


Cytat
chcę zrobić baze hashy md5 oczywiście planuje skończyć na hasłach 6 znakowych

Nie wiem czy dobrze liczę, ale dochodzę do takiego wyniku :
(36^6 + 36^5 + 36^4 + 36^3 + 36^2 + 36^1) ciągów znakowych, każdy po 128 bitów daje ponad 33 GB, blinksmiley.gif a to tylko same skróty md5...
Przydałoby się z 50 GB, natomiast o całkowitym czasie pracy nawet nie myślę.

Przykładowo dla 10 znakowych ciągów wyliczam ok. 56 000 000 GB aaevil.gif


___
Jeśli się mylę, to mnie poprawcie

Ten post edytował pojas 11.05.2008, 13:24:53
Go to the top of the page
+Quote Post
siurek22
post
Post #14





Grupa: Zarejestrowani
Postów: 62
Pomógł: 2
Dołączył: 24.02.2008

Ostrzeżenie: (0%)
-----


Cytat(wert1 @ 10.05.2008, 12:55:13 ) *
siurek22, niby w sql nie widac ale jak się wyciągnie przez php to jest winksmiley.jpg

  1. <?php
  2. $_1 = $_GET['md5'];
  3.  
  4.       $query=&#092;"SELECT haslo FROM md5 WHERE pass='\".$_1.\"'\";
  5.       $result=mysql_query($query);
  6.  
  7.       list($md5) = mysql_fetch_array ($result, MYSQL_NUM);
  8. echo $md5;
  9. ?>


ps: mógłbys napisać na gg//6865186

bawiłem się tym skryptem i mam już wszyskie hache do aaaa tongue.gif

niestety mylisz sie testowalem i hasha niema...
Cytat
Przydałoby się z 50 GB, natomiast o całkowitym czasie pracy nawet nie myślę.

O oto sie akurat niemart wszystko mam wyliczone...
Go to the top of the page
+Quote Post
rav1989
post
Post #15





Grupa: Zarejestrowani
Postów: 66
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


Witam

A ja mam taką sugestię. Lepiej do tego celu wykorzystać rainbowtables. Co prawda generowanie "tęczowych tablic" trochę trwa ale zajmuje dużo mniej miejsca np.
tablica wygenerowana
Kod
rtgen md5 loweralpha-numeric 1 7 0 2400 40000000 all

czyli hasła od 1 do 7 znaków małe litery i cyfry zajmuje 610MB.
oczywiście trzeba mieć kilka takich tablic ja mam 5
sam takie coś robię i jestem na etapie generowania ostatniej tablicy, potem już tylko odpowiedni skrypt php. Samo wyszukanie hashu md5 trwa parę sekund.

jak by ktoś chciał sobie wygenerować takie tablice to podaję kod:

Kod
rtgen md5 loweralpha-numeric 1 7 1 2400 40000000 all
rtgen md5 loweralpha-numeric 1 7 2 2400 40000000 all
rtgen md5 loweralpha-numeric 1 7 3 2400 40000000 all
rtgen md5 loweralpha-numeric 1 7 4 2400 40000000 all



i po wygenerowaniu trzeba je posortować

Kod
rtsort md5_loweralpha-numeric#1-7_0_2400x40000000_all.rt
rtsort md5_loweralpha-numeric#1-7_1_2400x40000000_all.rt
rtsort md5_loweralpha-numeric#1-7_2_2400x40000000_all.rt
rtsort md5_loweralpha-numeric#1-7_3_2400x40000000_all.rt
rtsort md5_loweralpha-numeric#1-7_4_2400x40000000_all.rt


Mam nadzieję, że pomogłem smile.gif

Pozdrawiam
Rav

Ten post edytował rav1989 19.05.2008, 15:04:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 13:12