
рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдкрд┐рдЫрд▓рд╛ рд╕рдкреНрддрд╛рд╣ рдЕрд╕рд╛рдзрд╛рд░рдг рд░реВрдк рд╕реЗ "рд╕рдлрд▓" рд░рд╣рд╛: рдпрд╛
рддреЛ рд▓рд┐рдВрдХреНрдбрдЗрди рд╣реИрд╢ рдЖрдзрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд▓реАрдХ рд╣реЛ рдЧрдпрд╛, рдпрд╛
рдЕрдВрддрд┐рдо.рдлреИрдо рд╣реИрд╢ ред рдФрд░ рд╕рднреА рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ, рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп, рд╡реЗ
рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВред
рд▓рдЧрднрдЧ рд╕рднреА рдиреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рд▓реЛрдЧреЛрдВ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдмрдирд╛рдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реИрд╢ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рд╕рдордЭрджрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрдВрджреНрд░рдзрдиреБрд╖ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдкреВрд░реНрд╡рд╕рдВрдХреНрд░рдордг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдлреЗрдж рдзрдмреНрдмреЛрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕
рд╡рд┐рд╖рдп рдХреЛ рдкрдврд╝рдирд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИред
рдЖрдЬ рдЗрдВрджреНрд░рдзрдиреБрд╖ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдИ рдпреЛрдЬрдирд╛рдмрджреНрдз рдмреМрджреНрдзрд┐рдХ рд╕рдлрд▓рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЗрдВрджреНрд░рдзрдиреБрд╖ рд╕рд╛рд░рдгреА рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреБрдЫ рд╕рд░рд▓, рдЕрд░реНрдерд╛рддреН: PHP рдкрд░ рд▓рд┐рдЦреЗрдВрдЧреЗред MySQL рдореЗрдВ рдЯреЗрдмрд▓ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред
рд╕рднреА рдХреЛрдб
GoogleCode рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рд╕реЛрдЪрдирд╛ рдерд╛ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рднреА ASCII рд╡рд░реНрдг рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдкреАрд╕реА рдпрд╛ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдХреАрдмреЛрд░реНрдб рдкрд░ рдЯрд╛рдЗрдк рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдирдкреБрдЯ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдЬрд┐рддрдиреА рдЫреЛрдЯреА рд╣реЛрдЧреА, рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рджрд┐рдП рдЧрдП рд╣реИрд╢ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдХрдо рд╣реЛрдВрдЧреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдКрдкрд░реА рдФрд░ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓реИрдЯрд┐рди рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рдЗрдирдкреБрдЯ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
$ALPHABET = array_merge(range(0, 9), range('A', 'Z'), range('a', 'z')); $LAST_SYMBOL = count($ALPHABET) - 1;
рдПрдХ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдВрдЬреАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХрд╛ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрдкрдХреЛ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
define('WORD_LENGTH', 6);
рдЪреЗрди рдХреЗ рдЕрдВрджрд░, рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдХрдореА рдлрд╝рдВрдХреНрд╢рдиред рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдпрд╣ рдПрдордбреА 5, рдПрд╕рдПрдЪрдП 1 рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдордбреА 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ)ред рдПрдХ рдХрдореА рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХрдо рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрдореА рдлрд╝рдВрдХреНрд╢рди, рдЗрдирдкреБрдЯ рдкрд░ рдПрдХ рд╣реИрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрдирдкреБрдЯ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рд╕реЗ рдХреБрдЫ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реЗ, рдХрдореА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдХрдо рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕реЗрдЯ рдХреА рд╢рдХреНрддрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред
рдмреЗрд╢рдХ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рджреЛ рдпрд╛ рддреАрди рдХрдореА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдирд╣реАрдВ рдЬрдм рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд▓рдВрдмрд╛рдИ 100 рдпрд╛ 1000 рд╣реЛред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд▓рдВрдмрд╛рдИ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рдП, рдЬрд┐рд╕реЗ рд╣рд╛рде рдХреА рдереЛрдбрд╝реА рд╕реА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИ: рдЖрдкрдХреЛ
Pseudorandom Number Generator (PRNG) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдЯреМрддреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдЗрдирдкреБрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрд╢ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде PRNG рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЧреЗрдЯрд╡реЙрд░реНрдб () рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд┐рдЯреНрд╕ рдХреЗ рд╕реНрддрд░ рдкрд░ рдЕрднрд┐рдирдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред PRNC рдХреЛ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ int рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореЗрд░реЗ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдпрд╣ 32 рдмрд┐рдЯреНрд╕ рдпрд╛ 4 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред MD5 рдореЗрдВ 16 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ (PHP рдореЗрдВ md5 рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЗрдЦреЗрдВ), рдлрд┐рд░ рд╕рдВрднрд╛рд╡рд┐рдд
рдЖрд╡рдВрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ 16 рд╣реИ! / (16 - 4)! = 43680 - 1000 рдХреА рдЪреЗрди рд▓рдВрдмрд╛рдИ рдХреЗ рд▓рд┐рдП рднреА рдПрдХ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдирд╣реАрдВ рдХрд╣рд╛:
define('CHAIN_LENGTH', 1000);
рдлрд┐рд░ рд░рд┐рдбрдХреНрд╢рди рдлрдВрдХреНрд╢рди рд╣реА рд╣реИ, рдЬреЛ рд╣реИрд╢ рдФрд░ рдЪреЗрди рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
function reduction($hash, $step) { global $reductions; $pos = $reductions[$step % CHAIN_LENGTH]; mt_srand(ord($hash[$pos[0]]) | ord($hash[$pos[1]]) << 8 | ord($hash[$pos[2]]) << 16 | ord($hash[$pos[3]]) << 24); return getWord(); }
рдЙрдкрд░реЛрдХреНрдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдВрдд рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рддреБрдЪреНрдЫ рд╣реИ:
function getEndOfChain($word, $startStep = 0, $length = CHAIN_LENGTH) { for($i = $startStep; $i < $length; ++$i) { $hash = md5($word, true); $word = reduction($hash, $i); } return $word; }
рдмрдзрд╛рдИ рд╣реЛ, рд╣рдордиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╣реИрд╢ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдЦреЛрдЬрдиреЗ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкрд╣рд▓реВ рдерд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЛ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣реИрд╢ рд╕реЗ рдЕрдВрддрд┐рдо nth рдХрдореА рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдкрд╛рд╕рд╡рд░реНрдб рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛, n-1 рдХрдореА рд▓реА рдЧрдИ рд╣реИ, рддреЛ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ nth рдХрдореА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ (рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ) рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╣рд╛рде рдкрд░ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдмреЗрд╢рдХ, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдпрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкрд╛рд╕рд╡рд░реНрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
function getWordsInChain($hash) { $words = array();
рдЕрдиреНрдп рд╕рднреА MySQL рдЬреЛрдбрд╝рддреЛрдбрд╝ рд╕реАрдзреЗ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдЕрдиреНрдп рднрд╛рдЧреЛрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдорд░рд╣рдо рдореЗрдВ рдПрдХ рдордХреНрдЦреАред PHP рдФрд░ MySQL рдЬрд▓реНрджрдмрд╛рдЬреА рдореЗрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди PHP рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реЗ рд░рд┐рд▓реЗрд╢рдирд▓ DBMS рдореЗрдВ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред 2 рдорд┐рд▓рд┐рдпрди рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕реЗ 1000 рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде 6-рд╡рд░реНрдг рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд▓рд┐рдП рдПрдордбреА 5 рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛, i3-330UM- рдЖрдзрд╛рд░рд┐рдд рд▓реИрдкрдЯреЙрдк 8 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рдкрд░рд┐рдгрд╛рдореА рддрд╛рд▓рд┐рдХрд╛ 2 * 10 ^ 9 рд╣реИрд╢ рдХреЛ рдЙрд▓рдЯ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреБрд▓ 6-рд╡рд░реНрдг рдкрд╛рд╕рд╡рд░реНрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрдореНрдпреВрдЯ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЪрдпрдирд┐рдд рдЗрдирдкреБрдЯ рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ 56.8 * 10 ^ 9 рд╣реИред
рдпрд╣ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрдкрдХрд░рдг рдЪреБрдирдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдлрд┐рд░ рднреА PHP рдХреЗ рд╕рд╛рде рдЗрдВрджреНрд░рдзрдиреБрд╖ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред