可信的公平:验证错误:primedice.com和bitsler.com
我正在尝试验证骰子掷骰,但生成错误的掷骰数字。我试过了2个网站的官方验证脚本:
- primedice的NodeJS verification script。
- bitsler和用于检查滚动的PHP脚本。
你能帮我理解为什么我不能得到与网站上相同的滚动数...让我们专注于primedice,因为我认为问题肯定是相似的。
primedice卷的详细信息:
roll #20,549,462,672
server seed (hashed) : a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183
client seed (nonced) : a9e65af098fe00229917de5659746dda-28
roll number shown on site: 35.02
我想在代码中使用的nonce有28个。所以我填充nodejs变量如下:
var clientSeed = "a9e65af098fe00229917de5659746dda";
var serverSeed =
"a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183";
var nonce = 28;
//----- official roll function from primedice
var crypto = require('crypto');
var roll = function(key, text) {
var hash = crypto.createHmac('sha512', key).update(text).digest('hex');
var index = 0;
var lucky = parseInt(hash.substring(index * 5, index * 5 + 5), 16);
while (lucky >= Math.pow(10, 6)) {
index++;
lucky = parseInt(hash.substring(index * 5, index * 5 + 5), 16); //if we reach the end of the hash, just default to highest number
if (index * 5 + 5 > 128) {
lucky = 99.99;
break;
}
}
lucky %= Math.pow(10, 4);
lucky /= Math.pow(10, 2);
return lucky;
}
console.log(roll(serverSeed, clientSeed+'-'+nonce));
然后使用网站给出的滚动功能。生成的结果是:
roll number generated : 50.64
所以50.64不是网站显示的==> 35.02
任何的想法?
回答如下:我明白问题是什么。这是要验证的卷
roll #20,549,462,672
server seed (hashed) :
a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183
client seed (nonced) : a9e65af098fe00229917de5659746dda-28
如您所见,它显示“服务器种子(散列)”。您无法使用种子的散列表示来计算正确的值。你需要真正的种子来获得正确的数字。
了解真正的种子意味着你可以下注,并且100%肯定会赢得每一个新的筹码。
因此,该服务不会让您看到用于让您下注的服务器种子。您必须进行种子更改,然后服务器将显示您上次会话使用的真实种子。
因此,您只能验证来自旧服务器种子的卷号,而不是当前卷号,因为出于安全原因,服务保密。
可信的公平:验证错误:primedice.com和bitsler.com
我正在尝试验证骰子掷骰,但生成错误的掷骰数字。我试过了2个网站的官方验证脚本:
- primedice的NodeJS verification script。
- bitsler和用于检查滚动的PHP脚本。
你能帮我理解为什么我不能得到与网站上相同的滚动数...让我们专注于primedice,因为我认为问题肯定是相似的。
primedice卷的详细信息:
roll #20,549,462,672
server seed (hashed) : a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183
client seed (nonced) : a9e65af098fe00229917de5659746dda-28
roll number shown on site: 35.02
我想在代码中使用的nonce有28个。所以我填充nodejs变量如下:
var clientSeed = "a9e65af098fe00229917de5659746dda";
var serverSeed =
"a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183";
var nonce = 28;
//----- official roll function from primedice
var crypto = require('crypto');
var roll = function(key, text) {
var hash = crypto.createHmac('sha512', key).update(text).digest('hex');
var index = 0;
var lucky = parseInt(hash.substring(index * 5, index * 5 + 5), 16);
while (lucky >= Math.pow(10, 6)) {
index++;
lucky = parseInt(hash.substring(index * 5, index * 5 + 5), 16); //if we reach the end of the hash, just default to highest number
if (index * 5 + 5 > 128) {
lucky = 99.99;
break;
}
}
lucky %= Math.pow(10, 4);
lucky /= Math.pow(10, 2);
return lucky;
}
console.log(roll(serverSeed, clientSeed+'-'+nonce));
然后使用网站给出的滚动功能。生成的结果是:
roll number generated : 50.64
所以50.64不是网站显示的==> 35.02
任何的想法?
回答如下:我明白问题是什么。这是要验证的卷
roll #20,549,462,672
server seed (hashed) :
a72c7d6e95b7122dc21968505b91d729f4eef30af2c019488bb76274290ad183
client seed (nonced) : a9e65af098fe00229917de5659746dda-28
如您所见,它显示“服务器种子(散列)”。您无法使用种子的散列表示来计算正确的值。你需要真正的种子来获得正确的数字。
了解真正的种子意味着你可以下注,并且100%肯定会赢得每一个新的筹码。
因此,该服务不会让您看到用于让您下注的服务器种子。您必须进行种子更改,然后服务器将显示您上次会话使用的真实种子。
因此,您只能验证来自旧服务器种子的卷号,而不是当前卷号,因为出于安全原因,服务保密。