Zarları sen de kontrol et
Bir oyunun zarlarını kontrol et
Oyun sonu kartındaki tohumu yapıştır; bu sayfa mührü ve her zarı tarayıcında yeniden hesaplar. Hiçbir şey hiçbir yere gönderilmez.
Bir zar nasıl hesaplanır
Aynı kod uygulamada ve sunucuda çalışır; bu sayfa onun bir kopyasıdır. Bir maçın her zarı tek bir HMAC'ten gelir:
mac = HMAC-SHA256(anahtar = sunucu tohumunun baytları,
mesaj = telefonSayısı1 ":" telefonSayısı2 ":" zarNo)
bayt = mac'in 252'den küçük ilk baytı
v = bayt mod 36
zar = (floor(v / 6) + 1, v mod 6 + 1)
252 = 7 × 36 olduğundan 36 sıralı zarın her biri eşit olasılıklıdır. 252 ile 255 arası baytlar atlanır; tutulsalardı ilk dört zarı biraz kayırırlardı. 32 baytın hiçbiri 252'den küçük değilse (olasılığı yaklaşık 2-192; hiç olmadı, olmayacak da) telefon sayılarının sonuna bir + eklenir ve MAC yeniden hesaplanır: telefonSayısı1:telefonSayısı2+:zarNo, sonra ++, ve böyle sürer.
İlk zardan önce gösterilen mühür, onaltılık yazımla SHA-256(sunucu tohumunun baytları)'dır. Sunucu tohumu 16 ile 64 bayt arasındadır; oyun 32 bayt kullanır. Telefon sayısı 1 ile 128 arası harf, rakam, _ ve - karakterinden oluşur; uygulama 32 onaltılık karakter gönderir.
Neden işe yarar
Parmak izi ilk zardan önce masadadır; sunucu oyunun gidişatını gördükten sonra tohumunu değiştirirse parmak izi de değişir. Telefonunun sayısı tohum mühürlendikten sonra üretilir; sunucu görmediği bir sayıya uygun tohum seçemez. Her zar ikisine birden bağlıdır ve yeniden hesaplamak için gereken her şey sende.
Sayfa tahtada gördüğünden farklı bir zar ya da tutmayan bir mühür gösterirse sayıları sakla ve [email protected] adresine yaz. Bilmek istiyoruz.
Bu sayfaya bağlantı
Oyun sonu kartı bu sayfayı oyun doldurulmuş olarak açar. Bağlantı aynı alanları taşır: /tr/check/?seed=…&seal=…&client=a,b&n=52&rolls=6344…; rolls zarları, zar sırasıyla her zar için iki rakam olarak listeler.