SerenitySerenity3x
Blood TigerBlood TigerST
Green MarineGreen Marine
PulsePulse2x
Jungle SlipstreamJungle Slipstream
CapillaryCapillary
ExothermicExothermic
FeatherweightFeatherweight
Classic CrateClassic Crate
DirectiveDirective
Elite BuildElite Build
Lapis GatorLapis Gator
HypnosisHypnosis
Midnight LaminateMidnight Laminate
GriffinGriffin
Mecha IndustriesMecha Industries
MortisMortis
TacticatTacticat
OsirisOsirisST
ConnexionConnexion
ValenceValence
Saibā OniSaibā Oni
GrimGrim
SupernovaSupernova
Analog InputAnalog InputST
GuardianGuardian

MIKÄ ON LÄPINÄKYVYYSJÄRJESTELMÄ?

Käyttämämme läpinäkyvyysjärjestelmän avulla voimme tarkistaa jokaisen aukon oikeellisuuden.

Avaustulos ei ole satunnainen, vaan se on laskettu kolmen arvon perusteella:

  • palvelimen siemen - palvelimen määrittämä lause,

  • asiakkaan siemen - käyttäjän määrittämä lause,

  • nonce - yksilöllinen numero, jota käytetään varmistamaan laskelmien turvallisuus.

"Palvelimen siemen" -lause on piilotettu käyttäjältä ja näytetään vain muodossa ("Julkinen hash"), jotta estetään seuraavan välimuistin sisällön ennustaminen.

Käyttämällä sekä palvelimen että käyttäjän syöttämiä tietoja on mahdollista varmistaa avatun laatikon läpinäkyvyys ja estää häiriöitä molemmilta puolilta.

ASETUKSET

CLIENT SEED

SERVER SEED

Salattu siemenpalvelin HMAC SHA-512 -menetelmällä.

NONCE

KOODI VAHVISTAA AVAUSLÄPPÄIVÄN

Kun olet löytänyt palvelimen siemenen, voit käyttää alla olevaa koodia tarkistaaksesi avauksen läpinäkyvyyden. Voit suorittaa sen suoraan verkkoselaimessa millä tahansa työkalulla, kuten JavaScript Compiler. Käytä alla olevaa koodia, valmistele oma vahvistuskoodisi ja napsauta sitten "Suorita"-painiketta. Käsikirjoituksen suorittamisen jälkeen esitetään avaustulos, jonka tulee olla yhdenmukainen verkkosivustollamme julkaistun tuloksen kanssa.



async function getRoll(serverSeed, serverNonce, clientSeed) {
	const enc = new TextEncoder();
	const key = enc.encode(serverSeed);
	const message = enc.encode(clientSeed + '-' + serverNonce.toString());

	const cryptoKey = await crypto.subtle.importKey(
		'raw',
		key,
		{ name: 'HMAC', hash: 'SHA-512' },
		false,
		['sign']
	);

	const signature = await crypto.subtle.sign('HMAC', cryptoKey, message);
	const hashArray = Array.from(new Uint8Array(signature));
	const hex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
	const rollHex = hex.substring(0, 7);
	const number = parseInt(rollHex.replace(/[^a-f0-9]/gi, ''), 16);

	return (number % 100000) + 1;
}

serverSeed = '';
serverNonce = 1;
clientSeed = '';

getRoll(serverSeed, serverNonce, clientSeed).then(roll => console.log('Roll result:', roll));

VAHVISTA AVAAMINEN