הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה | קובץ PHP כבד (https://hosts.co.il/forums/showthread.php?t=90479)

dowmusic 28-06-11 12:12

שאלה | קובץ PHP כבד
 
שלום, יש ברשותי קובץ PHP שבעצם מכניס הרבה הרבה סיסמאות למסד.
עכשיו שאני מריץ אותו הוא רק בתקיעות ואף תוקע לי את המחשב.
יש דרך כלשהי להריץ אותו איכשהו בלי שהוא יכביד עליי? לפי הנתונים עליו הוא צריך להריץ כ7 אלף סיסמאות בשנייה אבל אצלי מדובר רק בכמאה..

תודה =]

BlueNosE 28-06-11 12:57

כנראה שהמחשב שלך חלש מכדי לעמוד בעומס הזה. תנסה לשנות אותו כך שיכניס בכוונה פחות סיסמאות בזמן נתון, או להריץ משרת ייעודי.

dowmusic 28-06-11 13:12

שרת יעודי יקר בשבילי, קניתי אכסון בלי הגבלת מקום, אז אמרתי ננצל אותו כי גם ככה הם גונבים אותי במחיר =] אז נפתח אתר שאולי יעניין כמה אנשים בעולם..
אז בקשר לקוד זה אין שם משתנה של זמן או משהו זה פשוט מריץ ככה:
aaaaaa1
aaaaaa2
.
.
.
ככה עד שהוא עובר את כל האותיות והמספרים..
אז חשבתי ככה, כי בדקה הראשונה הוא באמת מריץ אפילו 10 אלף לשנייה, ואז הוא מתחיל להתקע לאט לאט. אז אולי אפשר לעלות שהוא כל פעם ימשיך מאיפה שהוא הפסיק במסד, זה אפשרי? תוכל לעשות לי את זה? כמובן בתשלום..
או שיש פתרון להריץ ממקום אחר שהוא יותר יעיל?

NoBoDy 28-06-11 13:17

אולי תנסה לעשות עמודים, ובכל עמוד הוא יתחיל מאיפה שהעמוד הקודם הפסיק.

dowmusic 28-06-11 13:19

כדי שתבינו יותר, הנה הסקריפט :

ציטוט:

<?php

set_time_limit(0);

$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'md5hash';

mysql_connect($host, $user, $pass);
mysql_select_db($db);

$tekens = array(

1 => "a",
2 => "b",
3 => "c",
4 => "d",
5 => "e",
6 => "f",
7 => "g",
8 => "h",
9 => "i",
10 => "j",
11 => "k",
12 => "l",
13 => "m",
14 => "n",
15 => "o",
16 => "p",
17 => "q",
18 => "r",
19 => "s",
20 => "t",
21 => "u",
22 => "v",
23 => "w",
24 => "x",
25 => "y",
26 => "z",
27 => "A",
28 => "B",
29 => "C",
30 => "D",
31 => "E",
32 => "F",
33 => "G",
34 => "H",
35 => "I",
36 => "J",
37 => "K",
38 => "L",
39 => "M",
40 => "N",
41 => "O",
42 => "P",
43 => "Q",
44 => "R",
45 => "S",
46 => "T",
47 => "U",
48 => "V",
49 => "W",
50 => "X",
51 => "Y",
52 => "Z",
53 => "0",
54 => "1",
55 => "2",
56 => "3",
57 => "4",
58 => "5",
59 => "6",
60 => "7",
61 => "8",
62 => "9"

);

for( $a = 1; $a <= 62; $a++ ) {

for( $b = 1; $b <= 62; $b++ ) {

for( $c = 1; $c <= 62; $c++ ) {

for( $d = 1; $d <= 62; $d++ ) {

for( $e = 1; $e <= 62; $e++ ) {

for( $f = 1; $f <= 62; $f++ ) {

for( $g = 1; $g <= 62; $g++ ) {

for( $h = 1; $h <= 62; $h++ ) {

for( $i = 1; $i <= 62; $i++ ) {

for( $j = 1; $j <= 62; $j++ ) {

for( $k = 1; $k <= 62; $k++ ) {

$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f] . $tekens[$g] . $tekens[$h] . $tekens[$i] . $tekens[$j] . $tekens[$k];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f] . $tekens[$g] . $tekens[$h] . $tekens[$i] . $tekens[$j];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f] . $tekens[$g] . $tekens[$h] . $tekens[$i];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f] . $tekens[$g] . $tekens[$h];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f] . $tekens[$g];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e] . $tekens[$f];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d] . $tekens[$e];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c] . $tekens[$d];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$a] . $tekens[$b] . $tekens[$c];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}


$inst = $tekens[$b] . $tekens[$b];

mysql_query("INSERT INTO lijst VALUES('', '". $inst ."', '". md5($inst) ."')");

echo "<b>". $inst ."</b><br>";

}

mysql_query("INSERT INTO lijst VALUES('', '". $tekens[$a] ."', '". md5($tekens[$a]) ."')");

echo "<b>". $tekens[$a] ."</b><br>";

}

?>

yonatan 28-06-11 13:35

אני לא מתכנת ב PHP , אבל מלקרוא את הקוד הצלחתי להבין שהוא הכי לא יעיל שיש.
מה זה for for for for for
אתה צריך לחשוב על אלגוריתם הגיוני תוך כדי התחשבות בזמן מעבד כשאתה כותב קוד, לא סתם לבנות דף לתת לו לרוץ ולהתפלל שיסיים את הפרוצדורה.

בנוסף הפלט echo "<b>". $inst ."</b><br>"; , זה עוד זמן מעבד יקר שמבוזבז סתם.

dowmusic 28-06-11 13:44

לא אני כתבתי אותו, מצאתי אותו.
אגב, בקוד שעל השרת הורדתי את כל ההצגות ECHO..

Shay Ben Moshe 28-06-11 13:54

טוב, די ברור מה הקוד הזה עושה. הוא נועד בשביל לשבור הצפנות md5.
אתה מנסה לבנות את כל ההצפנות האפשריות באורך עד 11 תווים יש לכל תו 63 אופציות שונות (ריק או אחד מתוך 62), סה"כ 63 בחזקת 11 אופציות שזה בערך 6.2*10^19.
אפילו אם תצפין מיליארד סיסמאות בשנייה זה יקח לך בערך 2000 שנה.

למה שלא תלך על משהו קצת יותר סביר?
לדוגמה עבור אותיות קטנות ומספרים בלבד עד 8 תווים לפי חישוב של מיליארד סיסמאות לשנייה זה ייקח בערך שעה.

בכל אופן נשמע די בזבוז זמן וקח בחשבון שאתה צריך גם לאכסן את כל המידע הזה בdatabase ולשלוף אותו אחר כך.

dowmusic 28-06-11 13:58

בקוד אצלי מדובר רק במספרים, שמתי פה תקוד המלא שמצאתי..

Shay Ben Moshe 28-06-11 14:00

בדקתי עכשיו על המחשב שלי מהירות של md5 והוא הצפין 1000000 ב3 שניות בPHP.
אם אתה עושה רק מספרים עד אורך 11 אז זה יקח בערך חצי דקה בPHP.
זאת בהנחה שכל המשאבים מוקצים לזה.

אני לא מבין למה את מנסה לעשות משהו כל כך כבד, אם כבר תנסה ללמוד על rainbow tables...

עריכה:
כמובן שהקוד שלי לא הכניס למסד, דבר שיאט באופן מטורף את הסקריפט.


כל הזמנים הם GMT +2. הזמן כעת הוא 23:26.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ