I was curious about this after reading an article about how to decrypt Fallout76 's codes. I followed the steps and wrote a PHP-script to automate it. Just for fun, since Nukacrypt has hacked it a long time ago and you don't need any of the codes or codeword that reveals itself after the last day of the week. I'm guessing approximateley sunday night depending on where you live in the world??? I'm not sure...but it was fun to do anyway. Read on...

 It was not difficult when you know the mechanics of it. I did not try to make it efficient of any kind. It was done in a "jiffy"...but it works. Preliminaries are that we have 8 codesegments(where each codefragment is in the form (A-Z)(0-9)). And we have a codeword that reveals itself on sunday(or you have guessed it earlier). I'm not going to tell you how it's made up. They describe it prefectly well on the site mentioned earlier. Since this is just a small script I'll reveal the whole php-script. See at the end of the article. What was interesting here was unscrambling the scrambled result. I'm not that "fast" in the head so I couldn't be bothered to try to unscramble it so I got the solution from https://wordfinder.yourdictionary.com/unscramble/. But it's no fun to go to that page all the time. And it's a javascript that does not reveal any tags that you can search for. I found an article with a really nice solution for this.

Most browsers have a developers' extension built in it. So to find out what scripts are run when you send a request to the server go to the network part of the extension and run the page. What happen is that it reveals what data is sent to the client. In this case it's a JSON-file containing all the data that you need to find the unscrambled word. Below is the what I found out about it(and I use cURL):

$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPGET, 1);
//this is important...a must in this case
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$autostring = "https://api.yourdictionary.com/wordfinder/v1/unscrambler?dictionary=US%2CWWF&dictionary_opt=YDR&limit=0&order_by=score&tiles=".implode($scrambled);
url_setopt($curl, CURLOPT_URL, $autostring);
$result = curl_exec($curl);
$resdec = json_decode($result);
$autogenerated = $resdec->data->_items[0]->word;

 

I have not automated the script to use this result because I think that maybe there can be more than one solution...or maybe something else is wrong. But the script below will reveal 1 result of what it has found. If there are more than one solution you should visit the site.

The result of the php-script below can be found here: https://frode.meek.wf/nukecode/index.php

 

Here's how it works(codes and codeword from sunday 02.06.2019):

1. Enter Codes:

2. Press Submit:

The following result will come forth

3. Enter the unscrambled word like below:

 

4. And the result is:

And here's the php-script:

echo <<<'EOD'
		<!DOCTYPE html>

		<html>
		<head>
			<title>Falllout 76 nuke-code decryptor</title>
EOD;
		$alphabet_const = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
		$alphalen = strlen($alphabet_const);
		$pnukecodes = $_POST["Nukecodes"];
		$pCodeword = $_POST["Codeword"];
		$pUnscrambled = $_POST["UnScrambled"];

echo <<<'EOD'
		</head>
		<body>
		<div id="nuke_id">
	
		<h1><a>Nuke code decryptor</a></h1>
		<form id="nuke_form" class="appnitro"  method="post" action="index.php">
					<div class="form_description">
			<h3>Works according to: <a target="_blank" href="https://www.reddit.com/r/fo76/comments/9ygyy9/stepbystep_guide_to_decrypting_launch_codes/">https://www.reddit.com/r/fo76/comments/9ygyy9/stepbystep_guide_to_decrypting_launch_codes/</a></h3>
			<p>Decrypts fallout 76 nuke code</p>
		</div>						
			<ul >
			
					<li id="li_1" >
		<label class="description" for="element_1">Enter Nukecodes: 8 pairs </label>
		<div>
			<input id="nukecodes" name="Nukecodes" class="element text medium" type="text" maxlength="255" value=""/> 
		</div><p class="guidelines" id="guide_1"><small>Example: R6A6C3F5J6N0T2W3</small></p> 
		</li>		<li id="li_2" >
		<label class="description" for="element_2">Enter codeword </label>
		<div>
			<input id="codeword" name="Codeword" class="element text medium" type="text" maxlength="255" value=""/> 
		</div><p class="guidelines" id="guide_2"><small>Enter codeword equivalent to the silo that comes from printer</small></p> 
		</li>
			
					<li class="buttons">
			    
				<input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
		</li>
			</ul>
		</form>	
		
	</div>
EOD;
	
	if($pnukecodes && $pCodeword) 
	{
	$pnukecodes = strtoupper($pnukecodes);
	$pCodeword = strtoupper($pCodeword);
	$regex = '/^[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}[A-Z]{1}[0-9]{1}$/';
	if (preg_match($regex, $pnukecodes)) 
	{
		echo '<p>Seems like the codes are A-OK. Continuing</p>';
		
		if(preg_match("/^[a-zA-Z0-9]+$/", $pCodeword) == 1)
		{
			echo '<p>Seems like the nukecodes are A-OK: "'.$pnukecodes.'"..Continuing</p>';
			echo '<p>Seems like the codeword is A-OK: "'.$pCodeword.'"..Continuing</p>';
			$nukecodes = str_split($pnukecodes, 2);
			//var_dump($nukecodes);
			$codeword = str_split($pCodeword, 1);
			//var_dump($codeword);
			
			$alphabet = $alphabet_const;
			$cwlen = count($codeword);
			//$alphalen = strlen($alphabet);
			for($i=0;$i < $cwlen; $i++)
			{
				for($j=0;$j < $alphalen; $j++)
				{
					if($codeword[$i] == $alphabet[$j])
					{
						$alphabet[$j]='_';
						$j=0;
						break;
					}
				}
			}
			$oralpha = array();
			$l = 0;
			for($k = 0; $k < $alphalen; $k++)
			{
				if($alphabet[$k] != '_')
				{
					$oralpha[$l] = $alphabet[$k];
					$l++;
				}
			}
			//$oralpha[$l]=NULL;//nullterminating string
			$catcode = array_merge($codeword, $oralpha);//this should be just as long as $alphabet_const

			$scrambled = array();
			for($n = 0; $n < 8; $n++)
			{
				for($m = 0; $m < $alphalen; $m++)
				{
					if($nukecodes[$n][0] == $catcode[$m])
					{
						$scrambled[$n] = $alphabet_const[$m];
						$m=0;
						break;
					}
				}
			}
			//$scrambled[n+1] = NULL;
			$link = "https://wordfinder.yourdictionary.com/unscramble/".implode($scrambled);
			echo "<br/>Below is a series of characters that needs to be unscrambled to a dictionary word. Go to <b><i><a target=\"_blank\" href=\"".$link."\">".$link."</a></i></b> and unscramble the word:<br/>";
			echo "<b>".implode($scrambled)."</b><br/>";
			echo "Submit the unscrambled word int the field below: <br/>";
			echo "Or you can use this word/phrase that was found: ";
			$curl = curl_init();
			curl_setopt($curl, CURLOPT_HTTPGET, 1);
			//this is important...a must in this case
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
			$autostring = "https://api.yourdictionary.com/wordfinder/v1/unscrambler?dictionary=US%2CWWF&dictionary_opt=YDR&limit=0&order_by=score&tiles=".implode($scrambled);
			curl_setopt($curl, CURLOPT_URL, $autostring);
			$result = curl_exec($curl);
			 $resdec = json_decode($result);
			 $autogenerated = $resdec->data->_items[0]->word;
			 echo "<p><h3><b>".strtoupper($autogenerated)."</b></h3></p>";
			//this scrambled word needs to be unscrambled...do that for example here: https://wordfinder.yourdictionary.com/unscramble/ginrst
			//or we can curl it and find the word ourselves.
echo <<<'EOD'
		<form id="scrambler_form" class="appnitro"  method="post" action="index.php">
			<h2>Get The launch code from the unscrambled word/phrase</h2>
			<ul >
				<li id="li_1" >
					<label class="description" for="element_1">Enter unscrambled word </label>
					<div>
						<input id="unscrambled" name="UnScrambled" class="element text medium" type="text" maxlength="255" value=""/> 
					</div>
						<p class="guidelines" id="guide_1"><small>Enter the unscrambled word from yourdictionary</small></p> 
				</li>		
EOD;
				//add some hidden fields so that we can save some values that we need for the rest of the calculation
				echo "<input type=\"hidden\" id=\"\" name=\"nuke_codes\" value=\"".implode($nukecodes)."\">";
				echo "<input type=\"hidden\" id=\"\" name=\"catcode\" value=\"".implode($catcode)."\">";
echo <<<'EOD'
				<li class="buttons">
					
					<input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
				</li>
			</ul>
		</form>	


EOD;
			
		}

	} 
	else 
	{
		echo '<p>Wrong format</p>';
	} }
	

	else if($pUnscrambled) 
	{
		$unscrambled = str_split(strtoupper($pUnscrambled));
		$unscrambled_equ = array();
		$catcode = str_split($_POST['catcode']);
		$nukecodes = str_split($_POST['nuke_codes'], 2);
		for($n = 0; $n < 8; $n++)
		{
			for($m = 0; $m < $alphalen; $m++)
			{
				if($unscrambled[$n] == $alphabet_const[$m])
				{
					$unscrambled_equ[$n] = $catcode[$m];
					$m=0;
					break;
				}
			}
		}
		$launch_code = array();
		for($i = 0; $i < 8; $i++)
		{
			for($j=0;$j < 8; $j++)
			{
				if($unscrambled_equ[$i] == $nukecodes[$j][0])
				{
					$launch_code[$i] = $nukecodes[$j][1];
					$j = 0;
					break;
				}
			}
		}
		echo "Launch code is: <b>".implode($launch_code)."</b><br/>\n";
	}
	else 
		exit("You need to submit something. In both fields...");
echo <<<'EOD'
	</body>
	</html>

EOD;


?>