рдкрд╛рдпрдерди рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд╛

рдпрд╣ рд▓реЗрдЦ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░ (PRNGs) рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рджреВрд╕рд░рд╛ рд╣реИред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХрдИ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдиреЗ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рдореВрд▓ рдмрд╛рддреЗрдВ ([1]) рд╕реЗ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рддрдХ рдкреАрдЖрд░рдПрдирдЬреА рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реАрдПрдордПрд╕ рдФрд░ рдЕрдиреНрдп рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ ([реи], [рей], [рек] )ред

рдпреЗ рдкреНрд░рдХрд╛рд╢рди рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ PRNG рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдХрдИ рдкрд╣рд▓реБрдУрдВ рдХреА рдиреАрдВрд╡ рд╣реИред рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫрджреНрдо рдЖрдпрд╛рдореА рд╕рдВрдЦреНрдпрд╛ / рд╡рд░реНрдг рдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдПрдХ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , рдЬреЙрд░реНрдЬ рдЕрд░рдЧрд┐рд░реЛрд╕ рдФрд░ рдПрдЧреЗрд▓реЛрд╕ рдХрд┐рдпрд┐рдпрд╕ ([3]) рдХреЗ рд╢реЛрдз рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдордиреЗ PHPSESSID рдХреЗ рдЖрдзрд╛рд░ рдкрд░ PHP рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЫрджреНрдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдПрдиреНрдЯреНрд░рд╛рдкреА рдХреЛ рдХрдо рдХрд░рдирд╛ рд╕реАрдЦрд╛ред

рдЕрдм рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ PRNG рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред

рдкрд╛рдпрдерди PRNG рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдкрд╛рдпрдерди рдореЗрдВ рддреАрди рдореЙрдбреНрдпреВрд▓ рд╣реИрдВ рдЬреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ / рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ: рдпрд╛рджреГрдЪреНрдЫрд┐рдХ , рдпреВрд░реЗрдирд┐рдпрдо рдФрд░ _random :


рд░реИрдВрдбрдо ()

рдкрд╣рд▓рд╛ рдПрдордЯреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ( _random рдореЙрдбреНрдпреВрд▓) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдЗрд╕реЗ рдпреВрд░реЗрдирд┐рдпрдо рд╕реЗ рд▓реА рдЧрдИ SEED рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ PRNG рдХреЛ RNG (рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЬрдирд░реЗрдЯрд░) рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдпреВрд░реЗрдирд┐рдпрдо рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, / dev / urandom рдЧрд╛рдпрдм рд╣реИ рдпрд╛ рдЖрдк advapi32.dll рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рддреЛ int (time.time () * 256) SEED рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ) рдЕрдкрд░реНрдпрд╛рдкреНрдд рдПрдиреНрдЯреНрд░рд╛рдкреА)ред

SYSTEMRANDOM ()

SystemRandom () рдЙрд░реБрдЧреНрд╡реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

MT рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╣ рд╣реИ рдХрд┐ PRNG рд░рд╛рдЬреНрдп рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ 624 рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп, рджреЛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

random_random() { unsigned long a=genrand_int32(self)>>5, b=genrand_int32(self)>>6; return PyFloat_FromDouble((a*67108864.0+b)*(1.0/9007199254740992.0)); } 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, PHP рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрдирд░реЗрдЯрд░ рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рд▓рдВрдмреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреНрд░рдо ( init_by_array () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдВрдЯреНрд░реЛрдкреА рдХреЗ рдмрд╛рд╣рд░реА рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (32 рдмрд╛рдЗрдЯреНрд╕ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдпреВрд░реЗрдирд┐рдпрдо рд╕реЗ ), рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рд╕рдордп () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :

 if a is None: try: a = int.from_bytes(_urandom(32), 'big') except NotImplementedError: import time a = int(time.time() * 256) 

рд╕реБрд░рдХреНрд╖рд╛


рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдмрджрд▓рд╛рд╡, PHP рдХреЗ рд╡рд┐рдкрд░реАрдд, random.random () рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рднреА рдкрд░реНрдпрд╛рдкреНрдд рдЬрдирд░реЗрдЯрд░ рдПрдиреНрдЯреНрд░рд╛рдкреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ "рдмреБрд░рд╛" рдирд╣реАрдВ рд╣реИред

рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ PHP рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкрд╛рдпрдерди рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╛рдЬреНрдп рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рдПрдХ рдмрд╛рд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдпрд╛рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдЬрдм random.seed () рдордЬрдмреВрд░ рд╣реЛрддрд╛ рд╣реИ (рдпрд╣ рдЕрддреНрдпрдВрдд рд╣реИ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджреБрд░реНрд▓рдн рдорд╛рдорд▓рд╛), рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдордЯреА рд░рд╛рдЬреНрдпреЛрдВ рдкрд░ рд╣рдорд▓реЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:


рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдг рдХреА рд╕рдЯреАрдХрддрд╛ рд░рд╛рдЬреНрдп рддрддреНрд╡ ( i ) рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ: i mod 2 = 0 рдХреЗ рд▓рд┐рдП, рдПрдВрдЯреНрд░реЙрдкреА 2 ^ 6 рд╣реИ , i mod 2 = 1 - 2 ^ 5 рдХреЗ рд▓рд┐рдП ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдорджрдж рд╕реЗ 1,2,199,200 рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рд░рд╛рдЬреНрдп 1 [1] , рд░рд╛рдЬреНрдп_1 [2] , рд░рд╛рдЬреНрдп_1 [3] , рд░рд╛рдЬреНрдп_1 [397] , рд░рд╛рдЬреНрдп_1 [398] , рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд╛рдЬреНрдп state_2 [1] рдФрд░ рд░рд╛рдЬреНрдп_2 [2] рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ 313 рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдиреНрдЯреНрд░рд╛рдкреА 2 ^ 24 (16M) рд╣реИ ред 511 рдФрд░ 625 рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдЯреНрд░рд╛рдкреА рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдХреНрд╡реЗрд░реАрдПрдБ state_2 [397] , state_3 [1] рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИрдВред рдпрд╣ рд░рд╛рдЬреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ 2 ^ 8 рддрдХ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдХреНрд╡реЗрд░реА рдирдВрдмрд░ 313 рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП "рдпрд╛рджреГрдЪреНрдЫрд┐рдХ" рдирдВрдмрд░ рдХреЗ рдХреБрд▓ 256 рд╡реЗрд░рд┐рдПрдВрдЯ рд╣реИрдВред

рдПрдХ рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдХреНрд╡реЗрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ PRNG рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИ (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдХрд┐ рд░рд╛рдЬреНрдп рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рдпрд╣ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдирдВрдмрд░ 1 PRNG рдХреЗ рд░рд╛рдЬреНрдп рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ 224 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЕрдиреБрд░реЛрдз рдирдВрдмрд░ 200 рдЬрдирд░реЗрдЯрд░ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд░рд╛рдЬреНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ред рдЗрд╕ рдШрдЯрдирд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ 36% рд╣реИ ред

рдЗрд╕рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рд╕рдВрдЦреНрдпрд╛ 625 рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдп рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд╕рднреА рдЕрдиреБрд░реЛрдз рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рдХреЛрдИ рднреА рдЕрдиреБрд░реЛрдз рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ 6 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИред рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдЕрдиреБрд░реЛрдз рд╕рдВрдЦреНрдпрд╛ 313 рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирдВрдмрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ


рд╣рдордиреЗ рдХрдИ рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди (рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд▓реЛрди рдФрд░ Django) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, (рдФрд░ рд╢рд╛рдпрдж рд╕реМрднрд╛рдЧреНрдп рд╕реЗ) рдЙрдирдХреЗ рдмреАрдЪ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред

рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдореНрдореАрджрд╡рд╛рд░ рдкреНрд▓реЙрди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ ( SiteErrorLog.py ) рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдкреНрд▓реЙрди рдкрд╛рдпрдерди 2.7 рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред * , рдЬреЛ, рдЬрдм рдлреНрд▓реЛрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП str () рд╣реИ, рдкрд┐рдЫрд▓реЗ 5 рдЕрдВрдХреЛрдВ рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реИ, рдЬреЛ iterated рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреАрдп рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП) рдХреЛ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рддреАрд╕рд░реА рд╢рд╛рдЦрд╛ рдХрд╛ рдкрд╛рдпрдерди рд╕реЗрдВрдЯ () рдЖрд░ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдлреНрд▓реЛрдЯ рдХреЛ рдирд╣реАрдВ рдХрд╛рдЯрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдкрд░ рд╣рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рджрд╛рд╡реЗрджрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИред

рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЗрдирдкреБрдЯ рдкрд░ 6 рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ vuln.py), рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдпрд╣ рдЪрдпрдирд┐рдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╡реЗрд░рд┐рдПрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдФрд╕рдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХрд╛ рд░рдирд┐рдВрдЧ рд╕рдордп рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ рд╣реИред

рдиреЛрдЯ: рдпрд╣ рдкрд░рд┐рджреГрд╢реНрдп (i mod 2 = 1) рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рддрддреНрд╡ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рджрдХреНрд╖рддрд╛ 36% рд╕реЗ рдШрдЯрдХрд░ 18% рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрдб (рд╡реЗрдм тАЛтАЛрд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░) рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдЙрди рд╣рдорд▓реЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ PHP рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдпрд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред PRNG рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рд╕рд░рд▓ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:


рд╕рдВрджрд░реНрдн


[рез] http://habrahabr.ru/post/151187/
[реи] http://jazzy.id.au/default/2010/09/20/cracking_random_number_generators_part_1.html
[рей] http://crypto.di.uoa.gr/CRYPTO.SEC/Randomness_Attacks_files/paper.pdf
[рек] http://www.slideshare.net/d0znpp/dcg7812-cryptographyinwebapps-14052863
[рел] http://media.blackhat.com/bh-us-10/pretations/Kamkar/BlackHat-USA-2010-Kamkar-How-I-Met-Your-Girlfriend-slides/pdf
[рем] http://en.wikipedia.org/wiki/Mersenne_twister
[[] Http://jazzy.id.au/default/2010/09/22/cracking_random_number_generators_part_3.html

рд▓реЗрдЦрдХ: рдпреВрдиреБрд╕реЛрд╡ рддреИрдореВрд░

Source: https://habr.com/ru/post/In156133/


All Articles