added tips to lamer.bash help
[mirrors/Programs.git] / php / skripty / rada_crack3.php
CommitLineData
8de51304
H
1<?php\r
2//Settings\r
3$start = 0;\r
4$stop = 1000;\r
5$places = strlen($stop);\r
6$tryes = 50; //Tryes to find better\r
7$base = 10;\r
8//Init\r
9error_reporting(0);\r
10srand(time());\r
11\r
12/////////////////////////////////////////////////////////////////\r
13//\r
14function rada_add($name, $istr) { //Funkce pro pridani do rady -> !!! OPTIMALIZOVAT !!! <-\r
15 if(!eregi($istr, $GLOBALS[$name])) {\r
16 if( $istr[0] == $GLOBALS[$name][strlen($GLOBALS[$name])-1] ) {\r
17 $istr = substr($istr, 1);\r
18 $GLOBALS[$name] = $GLOBALS[$name].$istr;\r
19 } elseif( $GLOBALS[$name][0] == $istr[strlen($istr)-1] ) { \r
20 $GLOBALS[$name] = substr($GLOBALS[$name], 1);\r
21 $GLOBALS[$name] = $istr.$GLOBALS[$name];\r
22 } else {\r
23\r
24 //Nahodne na zacetek nebo konec\r
25 if(rand(0,1)) { \r
26 $GLOBALS[$name] = $istr.$GLOBALS[$name];\r
27 } else {\r
28 $GLOBALS[$name] = $GLOBALS[$name].$istr;\r
29 }\r
30 \r
31 }\r
32 }\r
33 //$GLOBALS[$name]=$GLOBALS[$name].$istr; //Debug\r
34}\r
35\r
36//\r
37function rada_unique($name) { //Funkce pro vyhledani a smazani duplikatu (i potrebnych)\r
38 $length = $GLOBALS["places"];\r
39 $replacer = "%";\r
40\r
41 for($i=0;$i<(strlen($GLOBALS[$name])-$length);$i++) {\r
42 \r
43 $sub = substr($GLOBALS[$name], $i, $length);\r
44 for($x=0;$x<$length;$x++) {\r
45 $GLOBALS[$name][($i+$x)] = $replacer;\r
46 }\r
47 \r
48 $GLOBALS[$name] = str_replace($sub, "", $GLOBALS[$name]); //Smaze duplikaty\r
49 \r
50 $replace="";\r
51 for($x=0;$x<$length;$x++) {\r
52 $replace = $replace.$replacer;\r
53 }\r
54 \r
55 $GLOBALS[$name] = str_replace($replace, $sub, $GLOBALS[$name]);\r
56 }\r
57\r
58}\r
59\r
60//\r
61function add_zeroes($num, $places) { //Zarovna cislo na $places mist pridanim nul na zacatek\r
62 $str = "";\r
63 for($i=0;$i<$places;$i++) {\r
64 $str = $str."0";\r
65 }\r
66 //$num = base_convert($num, 10, $base); //BASE CONVERT -> !!! NOT WORKS YET !!! <-\r
67 $str=$str.$num;\r
68 $str = substr($str, strlen($str)-$places);\r
69 return $str;\r
70}\r
71\r
72///CODE///////////////////////////////////////////\r
73//Test\r
74//die(add_zeroes(23, 5));\r
75//////////////////////////////////////////////////\r
76$try = $tryes;\r
77$next = true;\r
78while($next) { //MAIN LOOP\r
79 $next = false;\r
80 \r
81 $rada = ""; //Vytvorime prazdnou radu\r
82 for($i=$start;$i<=$stop;$i++) { //Pridame vsechna n-cisli\r
83 $istr = add_zeroes($i, $places);\r
84 rada_add("rada", $istr);\r
85 }\r
86\r
87 rada_unique("rada");\r
88 \r
89 $notfound = 0;\r
90 for($i=$start;$i<=$stop;$i++) {\r
91 $istr = add_zeroes($i, $places);\r
92 if(!eregi($istr, $rada)) {\r
93 $notfound++;\r
94 //echo("Not found: $i\n");\r
95 $next = true;\r
96 }\r
97 }\r
98 \r
99 echo("Total not found: $notfound\n"); //Debug\r
100 \r
101 if($try > 0) {\r
102 if($notfound <= $minnotfound || !isset($minnotfound)) {\r
103 echo("-minnf: $notfound\n"); //Debug\r
104 $minnotfound = $notfound;\r
105 $try = $tryes;\r
106 } else {\r
107 $try--;\r
108 }\r
109 } else {\r
110 if($notfound <= $minnotfound || $notfound == 0) $next = false;\r
111 }\r
112 \r
113} //MAIN LOOP\r
114\r
115for($i=$start;$i<=$stop;$i++) { //Pridame vsechna zbyla n-cisli\r
116 $istr = add_zeroes($i, $places);\r
117 rada_add("rada", $istr);\r
118 }\r
119\r
120/////////OUTPUT///////////////////////////////////\r
121echo("\n");\r
122echo("Length: ".strlen($rada)." chars\n");\r
123echo("Total not found: $notfound\n");\r
124echo($rada);\r
125echo("\n\n");\r
This page took 0.842564 seconds and 4 git commands to generate.