- substr: documentation ( source)
- hash_hmac: documentation ( source)
- hash: documentation ( source)
- hexdec: documentation ( source)
- strtolower: documentation ( source)
<?php
// ------- INPUT DATA PART ---------
$secured_server_seed = ''; // Input the server seed if you want to validate it
$server_seed = '';
$client_seed = '';
$nonce = 0;
$roll = 0;
// ------- INPUT DATA PART END ---------
if (!empty($secured_server_seed)) {
$hash_seed = hash('sha256', $server_seed);
echo "Server seed: " . (strtolower($secured_server_seed) === strtolower($hash_seed) ? 'valid' : 'invalid') . "\n";
}
$game_hash = hash_hmac('sha512', $server_seed, $client_seed . '-' . $nonce);
$roll_game = 1 + hexdec(substr($game_hash, 0, 7)) % 10000000;
echo "Roll value for \"$nonce\" nonce: $roll_game\n";
echo "Roll is " . ($roll_game === $roll ? 'valid' : 'invalid') . "\n";