<?php
/*
* Fill in all five below and click blue 'eval();' button below textarea.
*
* ------------------ */
$caseNumber = -1;
$unhashedServerSeed = '';
$nonce = -1;
$clientSeed = '';
$qty = -1;
/* ------------------ */
if ($caseNumber < 0 || $unhashedServerSeed == '' || $nonce < 0 || $clientSeed == '' || $qty < 0) {
echo "Fill in details";
return;
}
$unhashedServerSeed = preg_replace( "/\r|\n/", "", $unhashedServerSeed );
$clientSeed = preg_replace( "/\r|\n/", "", $clientSeed );
function stringToInt32($seed)
{
$groups = str_split((string)$seed, 4);
$groups = array_map(function ($g) {
return unpack('C*', $g);
}, $groups);
$groups = array_filter($groups, function ($g) {
return count($g) === 4;
});
$result = array_map(function ($group) {
return array_reduce($group, function ($acc, $cur) {
return ($acc << 4) | $cur;
}, 0);
}, $groups);
return array_reduce($result, function ($acc, $cur) {
return ($acc ^ $cur);
}, 0);
}
$serverSeedInt = stringToInt32($unhashedServerSeed);
$clientSeedInt = stringToInt32($clientSeed);
$seed = $serverSeedInt ^ $clientSeedInt ^ (int)$caseNumber ^ (int)$nonce;
mt_srand($seed, MT_RAND_MT19937);
$result = mt_rand(1, $qty);
echo "Seed: $seed\n";
echo "Result: $result";
preferences:
24.46 ms | 411 KiB | 5 Q