3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function score_xor($line) { $score_arr = array(); $char_scores_arr = array( "a" => 9, "b" => 1, "c" => 3, "d" => 4, "e" => 13, "f" => 2, "h" => 6, "i" => 7, "j" => 0, "k" => 1, "l" => 4, "m" => 2, "n" => 7, "o" => 8, "p" => 2, "q" => 0, "r" => 6, "s" => 6, "t" => 9, "u" => 3, "v" => 1, "w" => 2, "x" => 0, "y" => 2, "z" => 0 ); #$input = pack("H*", "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736"); $input = pack("H*", $line); for ($i = 0; $i < 128; $i++) { $ciphertext = array(); $score = 0; for ($j = 0; $j < strlen($input); $j++) { $to_add = chr(ord($input[$j]) ^ $i); array_push($ciphertext, $to_add); if (array_key_exists(strtolower($to_add), $char_scores_arr)) $score += $char_scores_arr[strtolower($to_add)] + ord($to_add); } $ciphertext = implode("", $ciphertext); $score_arr[$ciphertext] = $score; } arsort($score_arr); $count = 5; $ret = array(); foreach ($score_arr as $ciphertext => $score) { if ($count--) array_push($ret, "Text: $ciphertext\n\tScore: $score\n"); else break; } return $ret; } $txt = file_get_contents("http://cryptopals.com/static/challenge-data/4.txt"); $lines = explode("\n", $txt); $results = array(); foreach ($lines as $line) { array_push($results, score_xor($line)); } var_dump($results); ?>
Output for 5.5.24 - 5.5.32, 5.5.34 - 5.6.17, 5.6.20 - 7.0.3, 7.0.5 - 7.1.0
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 5.2.6 - 5.4.45, 5.5.33, 5.6.18 - 5.6.19, 7.0.4
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: System error in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: php_network_getaddresses: getaddrinfo failed: System error in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 4.3.3 - 4.3.4, 4.3.10 - 4.4.9, 5.0.3 - 5.2.5
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: System error in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: Connection refused in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 4.3.5 - 4.3.9, 5.0.1 - 5.0.2
Warning: file_get_contents(): php_network_getaddresses: gethostbyname failed in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: Resource temporarily unavailable in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 5.0.0
Warning: file_get_contents(): php_network_getaddresses: gethostbyname failed in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: Bad file descriptor in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 4.3.2
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: System error (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt): failed to open stream: Connection refused in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }
Output for 4.3.0 - 4.3.1
Warning: file_get_contents() [http://www.php.net/function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: System error in /in/HQ54M on line 63 Warning: file_get_contents(http://cryptopals.com/static/challenge-data/4.txt) [http://www.php.net/function.file-get-contents]: failed to create stream: Connection refused in /in/HQ54M on line 63 array(1) { [0]=> array(1) { [0]=> string(17) "Text: Score: 0 " } }