3v4l.org

run code in 300+ PHP versions simultaneously
<? $defaultdata = array( "showpassword"=>"no", "bgcolor"=>"#ffffff"); function xor_encrypt($in) { //$key = '<censored>'; $key = 'U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK'; $text = $in; $outText = ''; // Iterate through each character for($i=0;$i<strlen($text);$i++) { $outText .= $text[$i] ^ $key[$i % strlen($key)]; } return $outText; } function xor_with_key($in, $key) { //$key = '<censored>'; //$key = 'U82q5TCMMQ9xuFoI3dYX61s7OZD9JKoK'; $text = $in; $outText = ''; // Iterate through each character for($i=0;$i<strlen($text);$i++) { $outText .= $text[$i] ^ $key[$i % strlen($key)]; } return $outText; } function loadData($def) { global $_COOKIE; $mydata = $def; if(array_key_exists("data", $_COOKIE)) { $tempdata = json_decode(xor_encrypt(base64_decode($_COOKIE["data"])), true); if(is_array($tempdata) && array_key_exists("showpassword", $tempdata) && array_key_exists("bgcolor", $tempdata)) { if (preg_match('/^#(?:[a-f\d]{6})$/i', $tempdata['bgcolor'])) { $mydata['showpassword'] = $tempdata['showpassword']; $mydata['bgcolor'] = $tempdata['bgcolor']; } } } return $mydata; } function saveData($d) { setcookie("data", base64_encode(xor_encrypt(json_encode($d)))); } // Taken from saveData() function encrypt($d){ return base64_encode(xor_encrypt(json_encode($d))); } function encrypt_step1($d){ return json_encode($d); } function encrypt_step2($d){ return xor_encrypt(json_encode($d)); } //Taken from loadData() function decrypt($d){ return json_decode(xor_encrypt(base64_decode($d)), true); } function decrypt_step1($d){ return base64_decode($d); } function decrypt_step2($d){ return xor_encrypt(base64_decode($d)); } /* $data = loadData($defaultdata); if(array_key_exists("bgcolor",$_REQUEST)) { if (preg_match('/^#(?:[a-f\d]{6})$/i', $_REQUEST['bgcolor'])) { $data['bgcolor'] = $_REQUEST['bgcolor']; } } saveData($data); */ /* */ // Show password = NO // bgcolor = #ffffff // XORED with some key $data = "ClVLIh4ASCsCBE8lAxMacFMZV2hdVVotEhhUJQNVAmhSEV4sFxFeaAw%3D"; $data = urldecode($data); echo "\n ENCRYPTED ASS COOKIE: \n"; var_dump($data); $xor_encrypted_json_orig = decrypt_step1($data); $json_orig = encrypt_step1(array( "showpassword"=>"no", "bgcolor"=>"#ffffff")); $xored_to_get_the_key = xor_with_key($json_orig, $xor_encrypted_json_orig ); echo "\nxor_encrypted_json_orig\n"; var_dump ($xor_encrypted_json_orig); echo "\njson_orig\n"; var_dump ($json_orig); echo "\nxored_to_get_the_key\n"; var_dump ($xored_to_get_the_key); echo "\n"; // echo "\nDecrypt Step 1 -> base64_decode(): \n"; // echo decrypt_step1($data); // echo "\nDecrypt Step 2 -> xor(): \n"; // echo decrypt_step2($data); // echo "\nDecrypt Step FINAL -> json_decode() \n"; // var_dump(decrypt($data)); // echo "\nJust creating the cookie from scratch:\n"; // $injected_cookie = array( "showpassword"=>"yes", "bgcolor"=>"#ffffff"); // var_dump($injected_cookie); // echo "\nIn encyrpted form!\n"; // $encrypted_good = encrypt($injected_cookie); // var_dump($encrypted_good); ?> <? // THIS RIGH HERE IS THE KEY. YOU NEED TO MAKE SHOW PASSWORD = YES //if($data["showpassword"] == "yes") { // print "The password for natas12 is <censored><br>"; //} ?>

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)
8.3.40.0070.00718.67
8.3.30.0140.00318.46
8.3.20.0070.00021.75
8.3.10.0040.00421.91
8.3.00.0050.00319.66
8.2.170.0100.00322.96
8.2.160.0070.00719.33
8.2.150.0070.00024.18
8.2.140.0040.00424.66
8.2.130.0000.00820.52
8.2.120.0050.00326.35
8.2.110.0070.00422.16
8.2.100.0030.01117.66
8.2.90.0040.00419.08
8.2.80.0040.00417.97
8.2.70.0000.00817.38
8.2.60.0030.00617.91
8.2.50.0000.00918.10
8.2.40.0000.00720.42
8.2.30.0000.00819.04
8.2.20.0040.00417.87
8.2.10.0000.00717.84
8.2.00.0040.00417.92
8.1.270.0050.00323.63
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0030.00522.19
8.1.230.0060.00619.07
8.1.220.0040.00417.74
8.1.210.0000.00918.77
8.1.200.0050.00517.22
8.1.190.0040.00417.22
8.1.180.0000.00818.10
8.1.170.0030.00618.49
8.1.160.0020.00518.79
8.1.150.0040.00418.74
8.1.140.0070.00019.48
8.1.130.0000.00818.66
8.1.120.0030.00317.34
8.1.110.0070.00017.36
8.1.100.0040.00417.33
8.1.90.0070.00017.22
8.1.80.0030.00317.28
8.1.70.0040.00417.22
8.1.60.0080.00017.34
8.1.50.0000.00817.30
8.1.40.0060.00317.35
8.1.30.0000.00817.59
8.1.20.0000.00817.45
8.1.10.0040.00417.46
8.1.00.0040.00417.23
8.0.300.0000.00718.77
8.0.290.0050.00216.63
8.0.280.0050.00218.34
8.0.270.0030.00317.09
8.0.260.0000.00619.01
8.0.250.0040.00416.77
8.0.240.0000.00716.83
8.0.230.0030.00316.70
8.0.220.0050.00216.76
8.0.210.0030.00316.72
8.0.200.0040.00416.80
8.0.190.0000.00816.71
8.0.180.0000.00816.80
8.0.170.0000.00816.80
8.0.160.0000.00716.84
8.0.150.0000.00716.74
8.0.140.0070.00016.67
8.0.130.0030.00313.37
8.0.120.0050.00316.60
8.0.110.0030.00316.71
8.0.100.0080.00016.59
8.0.90.0040.00416.80
8.0.80.0110.00816.73
8.0.70.0050.00216.67
8.0.60.0020.00516.79
8.0.50.0040.00416.63
8.0.30.0080.01016.99
8.0.20.0110.00817.40
8.0.10.0070.00016.93
8.0.00.0060.01016.75
7.4.330.0000.00515.55
7.4.320.0070.00016.48
7.4.300.0060.00016.39
7.4.290.0040.00416.30
7.4.280.0060.00316.31
7.4.270.0030.00316.48
7.4.260.0070.00016.27
7.4.250.0040.00416.41
7.4.240.0040.00416.46
7.4.230.0000.00716.44
7.4.220.0040.01916.45
7.4.210.0070.01016.39
7.4.200.0070.00016.58
7.4.160.0100.00616.35
7.4.150.0130.00417.40
7.4.140.0080.01217.86
7.4.130.0120.00916.42
7.4.120.0100.01116.52
7.4.110.0100.01316.30
7.4.100.0000.01616.43
7.4.90.0060.01616.29
7.4.80.0080.00819.39
7.4.70.0120.00416.36
7.4.60.0150.00016.46
7.4.50.0440.00713.65
7.4.40.0110.00716.41
7.4.30.0110.00616.22
7.4.00.0090.00614.66
7.3.330.0030.00313.38
7.3.320.0000.00713.38
7.3.310.0070.00015.99
7.3.300.0030.00315.99
7.3.290.0080.00816.13
7.3.280.0070.01116.12
7.3.270.0080.00917.40
7.3.260.0120.01016.25
7.3.250.0080.01216.26
7.3.240.0140.00616.19
7.3.230.0040.01216.46
7.3.210.0080.00816.43
7.3.200.0030.01316.32
7.3.190.0140.00316.31
7.3.180.0090.00616.28
7.3.170.0140.00716.16
7.3.160.0100.00616.32
7.2.330.0110.00616.39
7.2.320.0070.01016.48
7.2.310.0170.00716.49
7.2.300.0080.00816.61
7.2.290.0070.01016.54
7.2.60.0070.00316.80
7.1.200.0080.00515.87
7.1.70.0090.00617.26
7.1.60.0070.00717.19
7.1.50.0330.01333.10
7.1.40.0400.00332.67
7.1.30.0430.01332.59
7.1.20.0330.01732.71
7.1.10.0200.01314.72
7.1.00.0230.01014.75
7.0.200.0070.01416.84
7.0.190.0530.01014.81
7.0.180.0200.01314.39
7.0.170.0400.00714.57
7.0.160.0370.01314.38
7.0.150.0170.01314.37
7.0.140.0270.00714.68
7.0.130.0370.01014.69
7.0.120.0530.00314.66
7.0.110.0330.00314.52
7.0.100.0330.00714.66
7.0.90.0370.00714.63
7.0.80.0330.00714.49
7.0.70.0370.00314.46
7.0.60.0330.01014.34
7.0.50.0270.01314.46
7.0.40.0300.00714.58
7.0.30.0300.01014.58
7.0.20.0370.01014.55
7.0.10.0370.01714.61
7.0.00.0430.01314.59

preferences:
119.1 ms | 400 KiB | 5 Q