בדוק את תוצאת משחק ההתרסקות: אלגוריתם, אבטחה
1) מטרת האימות: מה בדיוק אתה מאשר
אי-תנועה: המפעיל לא יכול היה לשנות את התוצאה לאחר ההימור שלך (בשל ההתחייבות של חשיש זרעי השרת).
רבייה: לאחר קלט, אתה מקבל את אותו מכפיל שהמשחק הראה.
תקינות הנהלים: נוסח הודעה, כלל עיגול ו ”קצה הבית” מיושמים בקפדנות על פי המפרט.
2) מידע שבלעדיו אימות הוא בלתי אפשרי
1. Server Seed Hash (להתחייב) - פורסם לפני השימוש ב-Server Seed.
2. Server Seed (נחשף מאוחר יותר/בסוף התקופה).
3. לקוח זרע (הזרע שלך; אתה מגדיר את זה בעצמך או הפלטפורמה יוצרת).
4. Nunce (הנגד של ההימורים שלך בתוך 'זרע השרת הנוכחי').
5. אלגוריתם HASH (בדרך כלל ”HMAC-SHA256” או ”SHA-256”).
6. תבנית המסר (דוגמה: ": " "), מדלימיטרים/מקרה/קידוד מדויק.
7. נוסחת מיפוי חשיש = מכפיל (וחוק עיגול/מינימום).
3) אלגוריתם אימות (7 צעדים)
1. השווה את ההתחייבות: 'ספירת' SHA-256 (ServerSeed) והשווה עם 'ServerTress Hash'.
2. איסוף המסר: אך ורק בפורמט פלטפורמה (לדוגמה, msg = Colliged Seed + ":" + Nonce ").
3. ספור את החשיש העגול:
4) פסאודוקודה (ניתן להתאים לפייתון/JS)
”פיתון”
הכנס כאן את נוסחת המיפוי המדויקת מהפלטפורמה שלך במקום stub_mapping ()
ייבוא hmac, hasslib, מתמטיקה
דף round_hash (server_seed: bates, client_seed: str, nunce: int) -> betes:
דף take_u_from_hash (h: bates, k_bits=52) -> לצוף:
def stub_mapping (u: לצוף) -> לצוף:
אימות def (server_seed_hex, server_seed_hash_hex, client_seed, נונס, shown_multiplier):
חשוב: במקום ”stub _ mapping”, הפעל את הנוסחה המדויקת מקטע ההגינות של הפלטפורמה שלך; אחרת, הצ 'ק יהיה שגוי.
5) מקרים מסוימים ומלכודות
שני הימורים בסיבוב אחד: בפלטפורמות רבות יש 'nonce' מרווחים עבור כל אחד מההימורים שלך, גם אם הם ממוקמים באותו סיבוב (דוגמה: הימור A 'nonce = 42', הימור B 'nonce = 43'). בדוק לפי ההיסטוריה.
שינוי ”זרע לקוח”: בעת שינוי הזרע, ה ”נונס” מתאפס בדרך כלל (או מתחיל זרם חדש). תשווה את חוקי הפלטפורמה שלך.
Batchy 'Server Seed': One 'Server Seed' ackts על סדרה של סבבים, ואז מתחייב חדש מתפרסם; לא לבלבל זרעים מתקופות שונות.
עיגול/מינימום: אי התאמה בסימן השני - ב-90% מהמקרים, שגיאה בחוקים המעגלים/מינימום (לדוגמה, קבוע 1. 00 × בתנאים מיוחדים).
קידוד/רווחים: הזנת מרחב/קו נוסף, מקרה שגוי, non-UTF-8 שובר בדיקה.
6) רשימת בדיקות עגולות מהירות
1. האם 'SHA-256 (ServerSeed)' תואם את 'ServerTresSHash פורסם?
2. האם ה ”מסה” וה ”לא” נוצרו כהלכה?
3. אלגוריתם ('HMAC-SHA256 '/' SHA-256') ופקודת מפתח/שדה מיושמים אך ורק לפי המפרט?
4. האם המיפוי והעיגול זהים לתיעוד?
5. בין אם מקרים מיוחדים (”התרסקות מיידית” נדירה, מינימום 1. 00 ×, שומרי פה)?
6. האם התוצאה עולה בקנה אחד עם ההיסטוריה של המשחק פני?
7) אוטומציה של שליטה (פרקטיקה)
יומנים: שמור על ”לקוח _ זרע”, רצף ”נונס”, חותמת זמן, מכפיל סופי.
דגימה: לאחר ”שאגה” של ”זרע שרת”, הרץ את התסריט בסבבים אקראיים של 20-50; תקן את אחוז ההתאמה (חייב להיות 100%).
רגרסיה: בעת שינוי הגרסה של המשחק/ספק, הפעל את אותה קבוצה.
ייצוא: לאחסן CSV/JSON עם מקורות - זהו ”מסלול הביקורת” שלך.
8) בטיחות: איך לא לעשות טעויות ולתת לעצמך ללכת שולל
בדוק באופן מקומי/לא מקוון: אל תסתמך רק על מאמת האינטרנט של המפעיל; שמור על התסריט שלך.
אל תסמוך על סבבים ללא חבילת נתונים מלאה: ללא נוסחה/תבנית - ללא אימות.
Strong Client Seed: שאל באופן אקראי, שינוי באופן מחזורי (זה לא מגדיל את RTP, אבל לא מוציא שאלות על רבייה).
TLS/Sessions: HTTPS-only Login, 2FA, מעקב אחר התחברות היסטורית והעלאה.
אל תתנו ”זרע שרת” לאף אחד: הוא פורסם על ידי המפעיל לאחר התקופה; המשימה שלך היא לוודא, לא ”לקבל” את זה מראש.
9) שגיאות טיפוסיות של טירונים
סדר שדה מעורב (”Nonce: Signed Seed” במקום ”Signed Seed: Nonce”).
ספירה 'nonce' מאפס במקום אחד (או להפך).
החשיש של כל הסיבוב של הפלטפורמה (גלובל נונס) היה בשימוש, אבל אתה צריך האישי 'nonce' שלך.
הבנקאי מעגל נגד רצפה/תקרה.
בדוק נגד פעיל, עדיין לא נחשף ”זרע שרת”.
10) ”דגלים אדומים” אצל המפעיל
אין חשיש זרע שרת ציבורי לפני תחילת התקופה.
אתה לא יכול להגדיר את הלקוח שלך זרע או תצוגה nunce.
אין נוסחת מיפוי חשיש מכפיל הציבור.
ההיסטוריה של הסבבים אינה מספקת מינימום של נתונים לפיוס.
הפורמט והאלגוריתם שונו ללא התראה/מפרט ארכיון.
11) הקשר אוסטרלי (AU)
מטבע: לשמור רשומות של ניצחונות/הימורים ב-AUDE, לשמור על העלאות של סיפורים (תמיכה, נושאים שנויים במחלוקת).
משחק אחראי (RG): מגבלות הפקדה/זמן, הפסקה והדרה עצמית - זמינות באפליקציות בתום לב; השתמש בהם.
פרקטיקות פלטפורמה: עבור מפעילים בתום לב, הבלוק הוגן/הוגן מכיל תיאור מלא ודוגמאות של אימות; חוסר בפרטים היא סיבה לבחור שירות אחר.
12) השורה התחתונה
בדיקת התוצאה של משחק התרסקות היא הליך ברור:
שמור תסריט משלך, יומן קלט ובדוק מעת לעת סיבובים אקראיים. אז אתה מאשר כנות לא במילים, אלא מתמטית.
אי-תנועה: המפעיל לא יכול היה לשנות את התוצאה לאחר ההימור שלך (בשל ההתחייבות של חשיש זרעי השרת).
רבייה: לאחר קלט, אתה מקבל את אותו מכפיל שהמשחק הראה.
תקינות הנהלים: נוסח הודעה, כלל עיגול ו ”קצה הבית” מיושמים בקפדנות על פי המפרט.
2) מידע שבלעדיו אימות הוא בלתי אפשרי
1. Server Seed Hash (להתחייב) - פורסם לפני השימוש ב-Server Seed.
2. Server Seed (נחשף מאוחר יותר/בסוף התקופה).
3. לקוח זרע (הזרע שלך; אתה מגדיר את זה בעצמך או הפלטפורמה יוצרת).
4. Nunce (הנגד של ההימורים שלך בתוך 'זרע השרת הנוכחי').
5. אלגוריתם HASH (בדרך כלל ”HMAC-SHA256” או ”SHA-256”).
6. תבנית המסר (דוגמה: "
7. נוסחת מיפוי חשיש = מכפיל (וחוק עיגול/מינימום).
💡המפרט כולו צריך להיות בחלק ההוגן/הוגן למדי של המפעיל. אם משהו אינו קיים, זהו דגל אדום (ראו § 10).
3) אלגוריתם אימות (7 צעדים)
1. השווה את ההתחייבות: 'ספירת' SHA-256 (ServerSeed) והשווה עם 'ServerTress Hash'.
2. איסוף המסר: אך ורק בפורמט פלטפורמה (לדוגמה, msg = Colliged Seed + ":" + Nonce ").
3. ספור את החשיש העגול:
- HMAC-SH256: ”DoutHash = HMAC_SHA256 (מפתח = ServerSeed, msg = הודעה)”;
כאשר 'SHA-256': 'DoutHash = SHA256 (ServerSeed | הודעה | )' או כפי שצוין במפרט. |
---|---|---|
4. להוציא אקראיות: קחו את ה-K 'ביטים הראשונים (לרוב 52) = השלם' r ', ואז' u = r/2 ük '. | ||
5. הפעל את נוסחת המיפוי: המרת U למולטיפלייר (תיקי קצה הבית/מיוחד נלקחים בחשבון בהתאם לתיעוד המשחק). | ||
6. סיבוב לפי חוקי המשחק (לדוגמה, עד 2 תווים, לפחות 1. 00 ×, וכו '). | ||
7. בהשוואה לסיבוב הכולל בהיסטוריה. צירוף מקרים = כנות נכונה. |
4) פסאודוקודה (ניתן להתאים לפייתון/JS)
”פיתון”
הכנס כאן את נוסחת המיפוי המדויקת מהפלטפורמה שלך במקום stub_mapping ()
ייבוא hmac, hasslib, מתמטיקה
דף round_hash (server_seed: bates, client_seed: str, nunce: int) -> betes:
- קוד (”utf-8”) תבנית לראות מפרט
- להחזיר את המק. (server_seed חדש, הודעה, חשיש. Sha256). עיכול () או חשיש. Sha256 (...)
דף take_u_from_hash (h: bates, k_bits=52) -> לצוף:
- אנחנו לוקחים k ביטים משמעותיים ביותר כמו r שלם
- r = int. from_bytes (h, ”גדול”)>> (256 - k_bits)
- החזר r/( 1 <
def stub_mapping (u: לצוף) -> לצוף:
- STUB! החלף בנוסחה מתיעוד המשחק שלך
- לדוגמה, לפעמים משתמשים בטרנספורמציה של הצורה: קריסה = קומה ((const/( r + 1) 100 )/100
- ו/או ”קצה הבית” כמו 1 מאולץ נדיר. 00 × אל תשתמש בספח הזה בצ 'ק אמיתי.
- חזור מקסימום (1. 00, סיבוב (1. 0/max (1e-12, 1. 0 - u), 2)
אימות def (server_seed_hex, server_seed_hash_hex, client_seed, נונס, shown_multiplier):
- server_seed = בייטים. פרומקס (server_seed_hex)
- 1) התחייב
- לתבוע את השקד. Sha256 (server_seed). hexdigest () = server_seed_hash_hex. נמוך יותר ()
- 2-3) חשיש עגול
- h = round_hash (server_seed, client_seed, nunce)
- 4) u
- u = take_u_from_hash (h)
- 5-6) מיפוי + עיגול
- calc_mult = stub_mapping (u)
- 7) השוואה
- שרירי בטן חוזרים (calc_mult - shown_multiplier) <1e-9
- ```
חשוב: במקום ”stub _ mapping”, הפעל את הנוסחה המדויקת מקטע ההגינות של הפלטפורמה שלך; אחרת, הצ 'ק יהיה שגוי.
5) מקרים מסוימים ומלכודות
שני הימורים בסיבוב אחד: בפלטפורמות רבות יש 'nonce' מרווחים עבור כל אחד מההימורים שלך, גם אם הם ממוקמים באותו סיבוב (דוגמה: הימור A 'nonce = 42', הימור B 'nonce = 43'). בדוק לפי ההיסטוריה.
שינוי ”זרע לקוח”: בעת שינוי הזרע, ה ”נונס” מתאפס בדרך כלל (או מתחיל זרם חדש). תשווה את חוקי הפלטפורמה שלך.
Batchy 'Server Seed': One 'Server Seed' ackts על סדרה של סבבים, ואז מתחייב חדש מתפרסם; לא לבלבל זרעים מתקופות שונות.
עיגול/מינימום: אי התאמה בסימן השני - ב-90% מהמקרים, שגיאה בחוקים המעגלים/מינימום (לדוגמה, קבוע 1. 00 × בתנאים מיוחדים).
קידוד/רווחים: הזנת מרחב/קו נוסף, מקרה שגוי, non-UTF-8 שובר בדיקה.
6) רשימת בדיקות עגולות מהירות
1. האם 'SHA-256 (ServerSeed)' תואם את 'ServerTresSHash פורסם?
2. האם ה ”מסה” וה ”לא” נוצרו כהלכה?
3. אלגוריתם ('HMAC-SHA256 '/' SHA-256') ופקודת מפתח/שדה מיושמים אך ורק לפי המפרט?
4. האם המיפוי והעיגול זהים לתיעוד?
5. בין אם מקרים מיוחדים (”התרסקות מיידית” נדירה, מינימום 1. 00 ×, שומרי פה)?
6. האם התוצאה עולה בקנה אחד עם ההיסטוריה של המשחק פני?
7) אוטומציה של שליטה (פרקטיקה)
יומנים: שמור על ”לקוח _ זרע”, רצף ”נונס”, חותמת זמן, מכפיל סופי.
דגימה: לאחר ”שאגה” של ”זרע שרת”, הרץ את התסריט בסבבים אקראיים של 20-50; תקן את אחוז ההתאמה (חייב להיות 100%).
רגרסיה: בעת שינוי הגרסה של המשחק/ספק, הפעל את אותה קבוצה.
ייצוא: לאחסן CSV/JSON עם מקורות - זהו ”מסלול הביקורת” שלך.
8) בטיחות: איך לא לעשות טעויות ולתת לעצמך ללכת שולל
בדוק באופן מקומי/לא מקוון: אל תסתמך רק על מאמת האינטרנט של המפעיל; שמור על התסריט שלך.
אל תסמוך על סבבים ללא חבילת נתונים מלאה: ללא נוסחה/תבנית - ללא אימות.
Strong Client Seed: שאל באופן אקראי, שינוי באופן מחזורי (זה לא מגדיל את RTP, אבל לא מוציא שאלות על רבייה).
TLS/Sessions: HTTPS-only Login, 2FA, מעקב אחר התחברות היסטורית והעלאה.
אל תתנו ”זרע שרת” לאף אחד: הוא פורסם על ידי המפעיל לאחר התקופה; המשימה שלך היא לוודא, לא ”לקבל” את זה מראש.
9) שגיאות טיפוסיות של טירונים
סדר שדה מעורב (”Nonce: Signed Seed” במקום ”Signed Seed: Nonce”).
ספירה 'nonce' מאפס במקום אחד (או להפך).
החשיש של כל הסיבוב של הפלטפורמה (גלובל נונס) היה בשימוש, אבל אתה צריך האישי 'nonce' שלך.
הבנקאי מעגל נגד רצפה/תקרה.
בדוק נגד פעיל, עדיין לא נחשף ”זרע שרת”.
10) ”דגלים אדומים” אצל המפעיל
אין חשיש זרע שרת ציבורי לפני תחילת התקופה.
אתה לא יכול להגדיר את הלקוח שלך זרע או תצוגה nunce.
אין נוסחת מיפוי חשיש מכפיל הציבור.
ההיסטוריה של הסבבים אינה מספקת מינימום של נתונים לפיוס.
הפורמט והאלגוריתם שונו ללא התראה/מפרט ארכיון.
11) הקשר אוסטרלי (AU)
מטבע: לשמור רשומות של ניצחונות/הימורים ב-AUDE, לשמור על העלאות של סיפורים (תמיכה, נושאים שנויים במחלוקת).
משחק אחראי (RG): מגבלות הפקדה/זמן, הפסקה והדרה עצמית - זמינות באפליקציות בתום לב; השתמש בהם.
פרקטיקות פלטפורמה: עבור מפעילים בתום לב, הבלוק הוגן/הוגן מכיל תיאור מלא ודוגמאות של אימות; חוסר בפרטים היא סיבה לבחור שירות אחר.
12) השורה התחתונה
בדיקת התוצאה של משחק התרסקות היא הליך ברור:
- אימות של ”השרת זרע חשיש” להתחייב,
- שחזור 'DoudHash' על ידי 'זרע שרת', 'זרע לקוח', 'nonce' ואלגוריתם,
- יישום נוסחת המיפוי שפורסמה וכללי עיגול
- מכפיל זהה בסקירה שלך ובהיסטוריית המשחק.
שמור תסריט משלך, יומן קלט ובדוק מעת לעת סיבובים אקראיים. אז אתה מאשר כנות לא במילים, אלא מתמטית.