os.urandom, CPython, Linux рдФрд░ rake





рдореИрдВ UNIX рдХреА рддрд░рд╣ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рд▓рд┐рдирдХреНрд╕, рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, рдЖрджрд┐) рдкрд░ CPython рдореЗрдВ рдУрдПрд╕ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдпреВрд░реЗрдирд┐рдпрдо рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рд╢рд┐рдХреНрд╖рд╛рдкреНрд░рдж рддреНрд░реБрдЯрд┐ рдХрд╣рд╛рдиреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред



рдЯреНрд░рд┐рдкрд▓ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдЙрджреНрдзрд░рдг:

рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд n рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯреЗрдВред



рдпрд╣ рдлрд╝рдВрдХреНрд╢рди OS-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ рд╕реНрд░реЛрдд рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд╛рдЗрдЯ рджреЗрддрд╛ рд╣реИред рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реМрдЯрд╛ рдбреЗрдЯрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреА рд╕рдЯреАрдХ рдЧреБрдгрд╡рддреНрддрд╛ рдУрдПрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдПрдХ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реА рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдпрд╣ рдХреНрд╡реЗрд░реА рдХрд░реЗрдЧрд╛ / dev / urandom, рдФрд░ Windows рдкрд░ рдпрд╣ CryptGenRandom () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддреЗ рд╣реИрдВ:

рд╕рдВрд╕реНрдХрд░рдг 2.4 рдореЗрдВ рдирдпрд╛ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд, рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд╡рд╛рдЗрд╕ / рджреЗрд╡ / рдпреВрд░реЗрдирд┐рдпрдо рд╕реЗ рдпреВрд░реЗрдЯрд╛рдЧреНрд░рд╛рдо рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдЯ рджреЗрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдЗрд╕ OS рдореЗрдВ рдПрдиреНрдЯреНрд░рд╛рдкреА рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд░реЛрдд рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ: / dev / random рдФрд░ / dev / urandomред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ , рдкрд╣рд▓рд╛ рдЙрдкрдХрд░рдг "рдзреАрдорд╛" рдФрд░ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ "рддреЗрдЬрд╝" рд╣реИ, рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдзрд╛рд░рдгрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рджреЛрдиреЛрдВ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рд╕реНрд░реЛрдд рд╣реИрдВ (рдЫрджреНрдо-) рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ ред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ KDPV рдХрд╛ рд▓реЗрдЦ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА, рд╕реБрд░рдХреНрд╖рд╛ рдпрд╛ рд╣рд╛рд░реНрдЯрд▓реЗрд╕ рдХреЗ рд╕рд╛рде рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рджрд┐рдирдЪрд░реНрдпрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдЧрд▓рддреА рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рд╣рдордиреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ ...



2.4


2004 рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓реМрдЯрдХрд░, рд╣рд╛рдл-рд▓рд╛рдЗрдл 2 рд╕реАрдкреАрдереЙрди 2.4 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдРрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдбреЗрдХреЛрд░реЗрдЯрд░, рд╕реЗрдЯ, рд╕реЗрдЯ рдЙрд▓рдЯ рдХреНрд░рдо рдФрд░ рд╕реВрдЪреА рд╕рдордЭ рдЬреИрд╕реЗ рд╕рднреА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмрд┐рдирд╛ рднреА рд▓реЛрдЧ рдХреИрд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗ?



рдпрд╣ рдкрд╣рд▓реЗ рд╣реА рдКрдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди рдкрд░ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдбреАрдЖрд░ рдпреВрд░реЗрдирд┐рдпрдо ( рдПрди ) :

рд░реЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓реЗ ( '/ dev / urandom' , 'rb' ) рдХреЗ рд╕рд╛рде :

рд╡рд╛рдкрд╕реА рд░реИрдВрдбред рдкрдврд╝рд╛ ( n )
рддреЛ, рддреАрди рд▓рд╛рдЗрдиреЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЕрдкрд╡рд╛рджреЛрдВ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЙрдХреНрд╕ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдПред рдФрд░ рдлрд┐рд░ рдХрд┐рд╕реА рдХрд╛ рдЙрдЬреНрдЬреНрд╡рд▓ рд╕рд┐рд░ рдЗрд╕ рдХреЛрдб рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдЖрдк рдкреВрдЫреЗрдВред рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреИрд╢рд┐рдВрдЧ, рдкреНрд░рдХрд╛рд╢ рд╕рд┐рд░ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред

рд░рдВрдб = рдХреЛрдИ рдирд╣реАрдВ



рдбреАрдЖрд░ рдпреВрд░реЗрдирд┐рдпрдо ( рдПрди ) :

рдЕрдЧрд░ рд░реЗрдВрдб рдХреЛрдИ рдирд╣реАрдВ рд╣реИ :

rnd = open ( '/ dev / urandom' , 'rb' )

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



рдХрд╛рдВрдЯрд╛ ()


рдХрдИ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдлреЛрд░реНрдХ () рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ 2001 POSIX рдорд╛рдирдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдерд╛ рдФрд░ рдпреВрдирд┐рдХреНрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдерд╛, рдХреЛ "рджреНрд╡рд┐рднрд╛рдЬрди" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реНрдкреЙрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдЬреБрдбрд╝рд╡рд╛ рдПрдХ рд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдкрддрд╛ рд╕реНрдерд╛рди рд╣реИред рдФрд░ рдпрд╣ рдареАрдХ рдЙрд╕реА рдЬрдЧрд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдб рдореЗрдВ рдлреЛрд░реНрдХ () рдХреЙрд▓ рдерд╛ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд╛рдВрдЯреЗ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╡рд╛рдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ ("рдмрдЪреНрдЪрд╛") рдмрдирд╛рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рдХреЛ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдкреГрд╖реНрда рдЬреЛ рдЬреБрдбрд╝рд╡рд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕реНрдореГрддрд┐ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдЧреАрдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЖрджрдореА рдХрд╛рдВрдЯрд╛ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджреНрдзрд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:

рдмрдЪреНрдЪрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЦреБрд▓реЗ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред рдмрдЪреНрдЪреЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЙрд╕реА рдУрдкрди рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрд╢рди (рдУрдкрди (2 рджреЗрдЦреЗрдВ)) рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреЗрд░реЗрдВрдЯ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рджреЛ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдЦреБрд▓реЗ рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рддрд┐ рдЭрдВрдбреЗ, рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдСрдлрд╝рд╕реЗрдЯ рдФрд░ рд╕рд┐рдЧреНрдирд▓-рд╕рдВрдЪрд╛рд▓рд┐рдд I / O рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХрд╛рдВрдЯреЗ рдХреЗ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рдпрдерди рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдФрд░ рдЙрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦреЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрдВрдж рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдЧреАред



рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдВрдЯрд╛ рдФрд░ рдХрд╛рдВрдЯрд╛, рдЖрдк рдХрд╣рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдЕрдЬрдЧрд░ рд╣реИ? рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж

  1. рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ * рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  2. рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ
* рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде # 8713 рдЕрдм рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рд╣реИ



рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЗрдВ рдлреЛрд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмрдЪреНрдЪреЗ рд╢реБрд░реВ рдореЗрдВ рд░рд╛рдЬреНрдп рдореЗрдВ рд╣реИрдВ рдХрд┐ рдкреНрд░рдЬрдирди рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереАред рд╡рд┐рдореБрджреНрд░реАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЗрд╡рд╛ рдореЗрдВ рдмрджрд▓рдирд╛) - рдкреАрдИрдкреА 3143 рджреЗрдЦреЗрдВред рдХрд╣реАрдВ рдкреВрд░реЗ рдЬреЛрд╢ рдореЗрдВ рдХрд╛рдВрдЯрд╛ () рдкреБрдХрд╛рд░ рд╣реИред рдФрд░ рдЕрдЧрд░, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдкрд░рдВрдкрд░рд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рднреА рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рд╕реАрдзреЗ рдирдП рдмрдиреЗ рдбреЗрдореЙрди рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛, рди рдХрд┐ рдХрд░реАрдм () (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдПрд╕ ред рдХреНрд▓реЛрд╕реЗрд░реЗрдВрдЬ ( 3 , 256 ) ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рддреЛ рдУрдПрд╕.рдСрд░реНрдЧреИрдВрдбрдо () рдХреНрд░реИрд╢ред



2005 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕реАрдкреАрдереЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд▓рддреА рдмрддрд╛рдИ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЧреБрдЗрдбреЛ рдиреЗ рдкрд╣рд▓реЗ рдЦреБрдж рдХреЛ рдЗрдирдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд░реНрдЦ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

рдореИрдВ рдЗрд╕реЗ рдЕрдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдбреЛрдиреЗрд╢рди рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЛрдЧ рд╡рд┐рдкрд░реАрдд рдХреЗ рд░рд╛рдЬрд╛ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░, рдЬреБрд▓рд╛рдИ рдореЗрдВ, / dev / urandom рдХрд╛ рдХреИрд╢рд┐рдВрдЧ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ - рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдХреЛрдб рдореЗрдВ рди рддреЛ рдмрдЧ рдирдВрдмрд░ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ, рди рд╣реА рдкреИрдЪ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ, рди рд╣реА, рдЕрдВрдд рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгреАред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИред



3.4


рдЗрд╕рдореЗрдВ 9 рд╕рд╛рд▓ рд▓рдЧрддреЗ рд╣реИрдВред рдорд╛рд░реНрдЪ 2014 рдореЗрдВ , рд╕реАрдкреАрдереЙрди 3.4 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣ рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ ... рд░реБрдХреЛ, рдУрд╣ рд╢рд┐

рдкрд╛рдпрдерди 3.4 рдореЗрдВ рдХреЛрдИ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЧрдИрдВред
рдареАрдХ рд╣реИ, рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдкреНрд░рдЧрддрд┐ рдмрдбрд╝реА рд╣реИ: рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рд┐рдВрдХреЛ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣реИрдмреЗ рдкрд░ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╕реНрддреБрдУрдВ рдХреА рд░рд┐рд╣рд╛рдИ рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ - рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдРрд╕реЗ рд▓реЛрдЧ рдереЗ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдерд╛ рдХрд┐ / рдкрд╛рдпрдерди рдореЗрдВ / dev / urandom рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ C рд╣реА рд╕рд╣реА рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ ... рдФрд░ рдлрд┐рд░ рд╕реЗ рдЙрд╕реА рд░реЗрдХ рдкрд░ рдХрджрдо рд░рдЦрд╛ ред рдФрд░ рдХрд┐рд╕реА рднреА рдкреАрдИрдкреА 446 рдиреЗ рдЙрдирдХреА рдорджрдж рдирд╣реАрдВ рдХреАред рдкреИрдЪ 24 рдЕрдкреНрд░реИрд▓ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдПрдХ рдмрд╣реБрддрд╛рдпрдд, рдПрдХ рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рддрд┐рдЧрдорди рдкрд░реАрдХреНрд╖рдг рд╢рд╛рдорд┐рд▓ рдереЗред



рдореБрдЭреЗ рдХреНрдпрд╛ рдкрд░рд╡рд╛рд╣ рд╣реИ?


рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдкрд░ рдХреИрд╕реЗ рдареЛрдХрд░ рдЦрд╛рдИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдЙрдмрдВрдЯреВ 14.04 рдПрд▓рдЯреАрдПрд╕ рд╣реИ, рдФрд░, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рдкрд░

рдЖрдпрд╛рдд рдордВрдЪ

рдордВрдЪ ред python_build ( )

( 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ' , 'рдЕрдкреНрд░реИрд▓ 11 2014 13:05:11' )
рд╕рднреА рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реБрдП рдбрд┐рдореЛрдиреЗрдЯрд╛рдЗрдЬрд╝рд┐рдВрдЧ рдХреЛрдб рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдореБрд╕реАрдмрдд рд╣реИ

рдЖрдпрд╛рдд os

рдкреНрд░рд┐рдВрдЯ ( рдУрдПрд╕ ред рд╕реВрдЪреА рд╕реВрдЪреА ( '/ рдЦрд░реАрдж / рд╕реНрд╡ / рдПрдлрдбреА' ) )

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдпрд╛рдд рдХрд░реЗрдВ

рдкреНрд░рд┐рдВрдЯ ( рдУрдПрд╕ ред рд╕реВрдЪреА рд╕реВрдЪреА ( '/ рдЦрд░реАрдж / рд╕реНрд╡ / рдПрдлрдбреА' ) )
рдкреНрд░рд┐рдВрдЯ

['0', '1', '2', '3']





['0', '1', '2', '3', '4']



рдкреНрд░рдпреЛрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдл рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ os.listdir рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рддрд╣рдд рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирдВрдмрд░ 3 рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХрд┐рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ?

рдкреНрд░рд┐рдВрдЯ ( os ред readlink ( '/ proc / self / fd / 3' ) )
/dev/urandom



рддрд╛ рдбреИрдо! рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░рд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рдмреБрд░рд╛ рд░рд╡реИрдпрд╛ рд░рд╣рд╛ рдерд╛ ... рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ random.py рдХреЗ рдЕрдВрдд рдХрд╛ рдЙрджреНрдзрд░рдг рджреЗрддрд╛ рд╣реВрдВ:

рдУрдПрд╕ рдЖрдпрд╛рдд рдпреВрд░реЗрдирд┐рдпрдо рд╕реЗ _urandom рдХреЗ рд░реВрдк рдореЗрдВ



рд╡рд░реНрдЧ рд░реИрдВрдбрдо ( _randomред рд░реИрдВрдбрдо ) :

# ...

def __init__ ( рд╕реНрд╡ , x = рдХреЛрдИ рдирд╣реАрдВ ) :

# ...

рд╕реНрд╡ ред рдмреАрдЬ ( x )

рд╕реНрд╡ ред gauss_next = рдХреЛрдИ рдирд╣реАрдВ



рдбрд┐рдл рд╕реАрдб ( рд╕реНрд╡рдпрдВ , рдП = рдХреЛрдИ рдирд╣реАрдВ , рд╕рдВрд╕реНрдХрд░рдг = 2 ) :

# ...

рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ :

рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ :

a = int ред from_bytes ( _urandom ( 32 ) , 'рдмрдбрд╝рд╛' )

рд╕рд┐рд╡рд╛рдп NotImplementedError рдХреЗ :

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



рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрд╛ рдерд╛, рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реБрдП рдХрд┐ рдмрдЪреНрдЪреЗ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╡рд░рдг рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдмрдЧ рдХреА рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХреЗрдХреЗрдХреНрд╕ ред



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


рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдлреЛрд░реНрдХ () рдХреА рдЕрдирдиреНрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдореЗрд╢рд╛ рдХреЛрдб рдореЗрдВ рдмрдЧ рдлрд┐рдХреНрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдВрджреЗрд╢ рдкрдврд╝реЗрдВ (рдХрдо рд╕реЗ рдХрдо рдпрджрд┐ рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ)ред



All Articles