3v4l.org

run code in 300+ PHP versions simultaneously
<?php function microtime_float() { return microtime(true); } function checkValid($minPlain, $maxPlain, $curPlain, $i) { $valid = 0; if ($i % 20 == 19 && $minPlain >= -5 && $minPlain <= 10) { $valid = 1; } else if ($i % 4 == 3 && $minPlain >= 30 && $minPlain <= 45) { $valid = 1; } else if ($i % 20 == 17 && $minPlain >= 31 && $minPlain <= 46) { $valid = 1; } else if ($minPlain >= 33 && $minPlain <= 90 && ord($curPlain) >= $minPlain && ord($curPlain) <= $maxPlain && ord($curPlain) <= 90) { $valid = 1; } return ($valid); } function evalCrossTotal($strMD5) { $intTotal = 0; $arrMD5Chars = str_split($strMD5, 1); foreach ($arrMD5Chars as $value) { $intTotal += '0x0' . $value; } return $intTotal; } function arrayToString($array) { $string = implode("", $array); return $string; } function findFirstPlain($minPlain, $maxPlain) { $curPlain = chr($minPlain); if ($minPlain >= 33 && $minPlain <= 90) { if ($minPlain <= 48) $curPlain = "0"; else if ($minPlain > 57 && $minPlain <= 65) $curPlain = "A"; } return ($curPlain); } function increasePlain(&$curPlain) { if ($curPlain == "9") $curPlain = "A"; else $curPlain = chr(ord($curPlain) + 1); } function decryptString() { $str = "-149 -203 -143 -178 -161 -178 -146 -164 -149 -151 -112 -222 -190 -134 -174 -174 -242 -242 -192 -202 -182 -110 -186 -231 -109 -153 -222 -148 -139 -142 -126 -219 -152 -149 -141 -212 -152 -167 -156 -191 -208 -196 -169 -176 -124 -195 -150 -178 -181 -140 -100 -194 -201 -162 -178 -207 -196 -170 -182 -259 -172 -166 -118 -217 -141 -154 -181 -152 -131 -117 -189 -188 -166 -133 -197 -194 -193 -177 -172 -206 -114 -190 -166 -138 -181 -99 -140 -168 -120 -156 -183 -165 -185 -144 -207 -165 -193 -153 -180 -224"; $Enc = split(' ', $str); $IntMD5 = array(); $minPlain = array(); $maxPlain = array(); $curPlain = array('0', '0', '0', '-', '0', '0', '0', '-', 'O', 'E', 'M', '-', '0', '0', '0', '-', '1', '.', '1', "\n", '0', '0', '0', '-', '0', '0', '0', '-', 'O', 'E', 'M', '-', '0', '0', '0', '-', '1', '.', '1', "\n", '0', '0', '0', '-', '0', '0', '0', '-', 'O', 'E', 'M', '-', '0', '0', '0', '-', '1', '.', '1', "\n", '0', '0', '0', '-', '0', '0', '0', '-', 'O', 'E', 'M', '-', '0', '0', '0', '-', '1', '.', '1', "\n", '0', '0', '0', '-', '0', '0', '0', '-', 'O', 'E', 'M', '-', '0', '0', '0', '-', '1', '.', '1', "\n" ); $maxIntMD5 = 90 - $Enc[0] + 15; $minIntMD5 = 48 - $Enc[0]; //$minIntMD5=215; $IntMD5[0] = $minIntMD5; $minPlain[0] = $IntMD5[0] + $Enc[0] - 15; $maxPlain[0] = $IntMD5[0] + $Enc[0]; $curPlain[0] = findFirstPlain($minPlain[0], $maxPlain[0]); $inRange = checkValid($minPlain[0], $maxPlain[0], $curPlain[0], 0); for ($i = 0;;) { if (checkValid($minPlain[$i], $maxPlain[$i], $curPlain[$i], $i)) { if ($i == 99) { //print arrayToString($curPlain).''; break; } $i++; $IntMD5[$i] = evalCrossTotal(substr(md5(substr(arrayToString($curPlain), 0, $i)), 0, 16) . substr(md5($IntMD5[$i - 1]), 0, 16)); $minPlain[$i] = $IntMD5[$i] + $Enc[$i] - 15; $maxPlain[$i] = $IntMD5[$i] + $Enc[$i]; if ($i % 4 != 3 && $i % 20 != 8 && $i % 20 != 9 && $i % 20 != 10 && $i % 20 != 16 && $i % 20 != 17 && $i % 20 != 18 && $i % 20 != 19) { $curPlain[$i] = findFirstPlain($minPlain[$i], $maxPlain[$i]); //print ord($curPlain[$i]).""; } } else { //print " <<< ".ord($curPlain[$i])." ".$minPlain[$i]." ".$maxPlain[$i].""; if ($i != 0) { if ($i % 4 != 3 && $i % 20 != 8 && $i % 20 != 9 && $i % 20 != 10 && $i % 20 != 16 && $i % 20 != 17 && $i % 20 != 18 && $i % 20 != 19) $curPlain[$i] = 0; $i--; if ($i != 0) { if ($i % 4 == 3) $i--; if ($i % 20 == 8 || $i % 20 == 16) $i = $i - 2; else if ($i % 20 == 9 || $i % 20 == 17) $i = $i - 3; else if ($i % 20 == 10 || $i % 20 == 18) $i = $i - 4; } increasePlain($curPlain[$i]); } else { $IntMD5[0]++; $minPlain[0] = $IntMD5[0] + $Enc[0] - 15; $maxPlain[0] = $IntMD5[0] + $Enc[0]; $curPlain[0] = findFirstPlain($minPlain[0], $maxPlain[0]); } } } return (arrayToString($curPlain)); } set_time_limit(0); $start = microtime_float(); print decryptString(); $stop = microtime_float(); print " "; print $stop - $start; ?>

Abusive script

This script was stopped while abusing our resources

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.4.10.0140.00714.92
7.4.00.0000.01415.09
7.3.130.0110.00414.79
7.3.120.0130.00714.99
7.3.110.0120.00614.85
7.3.100.0040.01214.99
7.3.90.0000.01414.81
7.3.80.0060.00314.95
7.3.70.0100.00714.88
7.3.60.0070.01114.63
7.3.50.0000.01614.96
7.3.40.0000.01115.02
7.3.30.0000.00914.79
7.3.20.0030.00616.63
7.3.10.0000.01016.63
7.3.00.0120.00616.69
7.2.260.0120.00614.95
7.2.250.0070.01014.85
7.2.240.0070.01015.14
7.2.230.0040.01215.04
7.2.220.0030.01014.84
7.2.210.0000.01115.14
7.2.200.0090.00914.69
7.2.190.0040.01114.80
7.2.180.0090.00915.04
7.2.170.0050.00515.23
7.2.160.0060.00915.14
7.2.150.0100.00716.96
7.2.140.0090.00616.59
7.2.130.0100.00616.69
7.2.120.0040.01116.91
7.2.110.0040.00716.57
7.2.100.0110.00417.01
7.2.90.0040.00717.00
7.2.80.0040.00716.90
7.2.70.0100.00716.75
7.2.60.0030.01016.73
7.2.50.0030.01016.66
7.2.40.0100.00316.95
7.2.30.0040.00816.91
7.2.20.0040.00816.87
7.2.10.0060.00616.85
7.2.00.0060.00616.79
7.1.330.0040.00715.67
7.1.320.0090.00915.44
7.1.310.0030.01015.59
7.1.300.0070.01115.39
7.1.290.0000.01015.76
7.1.280.0040.00715.62
7.1.270.0090.00315.46
7.1.260.0100.00315.68
7.1.250.0040.01115.82
7.1.240.0000.01315.72
7.1.230.0000.01415.76
7.1.220.0060.00615.54
7.1.210.0050.00515.54
7.1.200.0060.00815.77
7.1.190.0070.01015.75
7.1.180.0060.00615.64
7.1.170.0030.01015.50
7.1.160.0070.00315.77
7.1.150.0040.00815.72
7.1.140.0070.00315.75
7.1.130.0000.01015.64
7.1.120.0000.01015.50
7.1.110.0030.00715.43
7.1.100.0080.00015.73
7.1.90.0080.00315.82
7.1.80.0000.01015.60
7.1.70.0000.01015.64
7.1.60.0030.00715.80
7.1.50.0000.01015.67
7.1.40.0030.00915.74
7.1.30.0040.00715.50
7.1.20.0130.00015.66
7.1.10.0060.00615.53
7.1.00.0030.01015.75
7.0.330.0070.01015.06
7.0.320.0090.00315.01
7.0.310.0060.00315.34
7.0.300.0070.00315.26
7.0.290.0030.00715.32
7.0.280.0030.00715.31
7.0.270.0070.00315.21
7.0.260.0070.00315.43
7.0.250.0000.01015.12
7.0.240.0110.00415.48
7.0.230.0000.01015.45
7.0.220.0030.00715.39
7.0.210.0030.00715.18
7.0.200.0000.01015.21
7.0.190.0090.00315.21
7.0.180.0050.00515.35
7.0.170.0070.00315.36
7.0.160.0060.00915.19
7.0.150.0060.00315.45
7.0.140.0030.01015.35
7.0.130.0070.00315.30
7.0.120.0070.00315.28
7.0.110.0030.00715.30
7.0.100.0030.00715.34
7.0.90.0080.00415.45
7.0.80.0030.00715.36
7.0.70.0030.00915.30
7.0.60.0040.00415.43
7.0.50.0030.00715.56
7.0.40.0110.00413.49
7.0.30.0100.00313.50
7.0.20.0000.01013.14
7.0.10.0040.00713.39
7.0.00.0080.00613.41
5.6.400.0072.48814.86
5.6.390.0032.48914.25
5.6.380.0102.48814.63
5.6.370.0072.49114.59
5.6.360.0032.49414.57
5.6.350.0032.49114.92
5.6.340.0032.49514.55
5.6.330.0032.49214.88
5.6.320.0132.48414.84
5.6.310.0032.49414.60
5.6.300.0032.49514.63
5.6.290.0032.49314.70
5.6.280.0072.49114.50
5.6.270.0002.49814.43
5.6.260.0072.48414.70
5.6.250.0072.49114.51
5.6.240.0072.49114.46
5.6.230.0032.49514.74
5.6.220.0072.48014.54
5.6.210.0032.47714.56
5.6.200.0062.48714.36
5.6.190.0032.46614.89
5.6.180.0102.48614.53
5.6.170.0072.49014.67
5.6.160.0002.49114.46
5.6.150.0032.49514.51
5.6.140.0032.49414.66
5.6.130.0002.49814.51
5.6.120.0002.49714.48
5.6.110.0072.49114.24
5.6.100.0002.49614.60
5.6.90.0002.49814.37
5.6.80.0072.48814.65
5.6.70.0032.48814.45
5.6.60.0032.49514.31
5.6.50.0072.49114.45
5.6.40.0002.49714.60
5.6.30.0122.48114.50
5.6.20.0032.49414.39
5.6.10.0072.48914.55
5.6.00.0072.48514.54
5.5.380.0032.49414.55
5.5.370.0072.49114.29
5.5.360.0002.49214.52
5.5.350.0132.47514.35
5.5.340.0162.47214.44
5.5.330.0032.49514.45
5.5.320.0032.49514.58
5.5.310.0032.49414.75
5.5.300.0102.48714.57
5.5.290.0002.47814.61
5.5.280.0032.49414.45
5.5.270.0102.48814.50
5.5.260.0072.48514.75
5.5.250.0092.48714.55
5.5.240.0032.49314.22
5.5.230.0072.49214.56
5.5.220.0032.49314.64
5.5.210.0032.49414.44
5.5.200.0032.49414.10
5.5.190.0032.48914.70
5.5.180.0032.49514.64
5.5.170.0032.46913.93
5.5.160.0002.49814.38
5.5.150.0072.49114.33
5.5.140.0032.49414.33
5.5.130.0032.48914.38
5.5.120.0032.48914.16
5.5.110.0002.49914.52
5.5.100.0072.49014.32
5.5.90.0072.47714.52
5.5.80.0032.48814.66
5.5.70.0002.49814.46
5.5.60.0102.47914.50
5.5.50.0032.49414.38
5.5.40.0002.49814.51
5.5.30.0032.49414.28
5.5.20.0002.49814.71
5.5.10.0072.48014.57
5.5.00.0032.49514.66
5.4.450.0032.48811.55
5.4.440.0072.49211.47
5.4.430.0002.49811.16
5.4.420.0072.49111.30
5.4.410.0032.49511.34
5.4.400.0032.49511.20
5.4.390.0032.49311.21
5.4.380.0002.49811.25
5.4.370.0102.48811.05
5.4.360.0002.49811.30
5.4.350.0032.49510.97
5.4.340.0002.49710.97
5.4.330.0032.49511.01
5.4.320.0032.49511.22
5.4.310.0032.49510.93
5.4.300.0072.49211.19
5.4.290.0032.49410.87
5.4.280.0002.49711.31
5.4.270.0032.49511.30
5.4.260.0002.49811.19
5.4.250.0002.49410.95
5.4.240.0032.49510.87
5.4.230.0002.49710.75
5.4.220.0032.49411.20
5.4.210.0032.49511.28
5.4.200.0132.47810.87
5.4.190.0032.49511.14
5.4.180.0002.49611.25
5.4.170.0002.49711.13
5.4.160.0072.49111.22
5.4.150.0002.49411.00
5.4.140.0072.48911.14
5.4.130.0102.46713.65
5.4.120.0132.38713.62
5.4.110.0072.45113.58
5.4.100.0122.48213.86
5.4.90.0082.43913.80
5.4.80.0082.46613.87
5.4.70.0072.48413.74
5.4.60.0102.45713.88
5.4.50.0082.46913.86
5.4.40.0202.45213.90
5.4.30.0072.48113.75
5.4.20.0232.43613.92
5.4.10.0102.44813.70
5.4.00.0122.43913.38
5.3.290.0032.49510.43
5.3.280.0002.49610.52
5.3.270.0032.49410.63
5.3.260.0032.48810.52
5.3.250.0002.49810.62
5.3.240.0102.48810.54
5.3.230.0202.40812.52
5.3.220.0092.47112.54
5.3.210.0102.45112.54
5.3.200.0172.43512.54
5.3.190.0132.46212.57
5.3.180.0072.46412.64
5.3.170.0052.48012.68
5.3.160.0132.44412.63
5.3.150.0102.47112.65
5.3.140.0132.45912.63
5.3.130.0122.46712.63
5.3.120.0132.46212.58
5.3.110.0102.45912.50
5.3.100.0082.48212.36
5.3.90.0122.44712.23
5.3.80.0052.47012.07
5.3.70.0102.46412.10
5.3.60.0082.46412.10
5.3.50.0102.45712.19
5.3.40.0132.45112.06
5.3.30.0122.44712.26
5.3.20.0102.45612.12
5.3.10.0032.47311.87
5.3.00.0162.47711.99

preferences:
43.94 ms | 400 KiB | 5 Q