HMAC
एक keyed हैश फंक्शन; provably fair गेम्स में HMAC-SHA256 सर्वर सीड को क्लाइंट सीड और nonce के साथ जोड़ता है।
HMAC (hash-based message authentication code) किसी हैश फंक्शन का इस्तेमाल करके एक गुप्त key को मैसेज के साथ जोड़ने का मानक तरीका है। HMAC-SHA256, SHA-256 इस्तेमाल करता है और 32 bytes का आउटपुट देता है।
provably fair गेम्स में यह कैसे इस्तेमाल होता है
सबसे आम स्कीम में सर्वर सीड HMAC key है और मैसेज क्लाइंट सीड, nonce और एक round नंबर है, जिन्हें colons से जोड़ा जाता है:
HMAC-SHA256(serverSeed, clientSeed:nonce:round)
32 आउटपुट bytes को 4 bytes के 8 ग्रुप में बांटा जाता है। हर ग्रुप bytes को base-256 भिन्न मानकर 0 और 1 के बीच एक float बनता है: byte1/256 + byte2/256^2 + byte3/256^3 + byte4/256^4। गेम उन floats को नतीजों में बदलते हैं।
सादे हैश के बजाय HMAC क्यों
HMAC ठीक इसी स्थिति के लिए डिज़ाइन किया गया है, यानी गुप्त key को सार्वजनिक इनपुट के साथ जोड़ना, और यह उन length-extension कमज़ोरियों से सुरक्षित है जो जोड़ी गई स्ट्रिंग्स के सादे हैश में हो सकती हैं।
नोट
हर casino ठीक यही फॉर्मेट इस्तेमाल नहीं करता। कुछ key और मैसेज की अदला-बदली करते हैं, अतिरिक्त फील्ड जोड़ते हैं या अलग conversion इस्तेमाल करते हैं। वेरिफिकेशन casino के अपने दस्तावेज़ों के अनुसार होना चाहिए।