
рд╣реИрдмрд░ рдкрд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреА рдХреЗ рдПрдХ рдЕрдЬреАрдм рд╕рдкреНрддрд╛рд╣ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ PHP рдореЗрдВ рдПрдирдмрд┐рд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред Anubis рдПрдХ рдмреНрд▓реЙрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Rijndael рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдПрдХ рд╕рдВрд╢реЛрдзрди рд╣реИ, рдЬрд┐рд╕реЗ рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд┐рдлрд░реНрд╕ рд╡рд┐рдиреНрд╕реЗрдиреНрдЯ рд░реЗрдореИрди рд╣реИрдВ, рдЬреЛ рд░рд┐рдЬрдВрдбреЗрд▓ рдФрд░ рдкрд╛рдЙрд▓реЛ рдПрд╕ред рдПрд▓ред рдПрдоред рдмреИрд░реЗрдЯреЛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВ, рдЬреЛ рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд░ рд╣реИрдВ, рдЬреЛ рд╡реНрд╣рд░реНрд▓рдкреВрд▓ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдореИрдВрдиреЗ рдЕрдиреБрдмрд┐рд╕ рдХреНрдпреЛрдВ рдЪреБрдирд╛? рдпрд╣ рдПрдХ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдПрдмрд┐рд╕ рдЖрдзреБрдирд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ - рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ рдПрдИрдПрд╕, 128 рдмрд┐рдЯреНрд╕ рдХреА рддрд░рд╣ рд╣реИ, рдФрд░ рдХреБрдВрдЬреА рдХреА рд▓рдВрдмрд╛рдИ 128 рд╕реЗ 320 рдмрд┐рдЯреНрд╕ рддрдХ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, 2000 рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рдж рд╕реЗ, Anubis рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдХреЛрдИ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реБрдИ рд╣реИрдВред рд╡рд╣
NESSIE рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд╣реАрдВ
рдЖрдП , рдмрд▓реНрдХрд┐ рдХреЗрд╡рд▓
рд░рд┐рдЬрд┐рдиреНрджреЗрд▓ рдХреЗ рд╕рд╛рде рдЙрдирдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рдХрд╛рд░рдгред
рдиреАрдЪреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕реА рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо ("рдЯреНрд╡рд┐рдХреЗрдб" рдПрдмрд┐рд╕) рдХреЗ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдЗрд╕рдореЗрдВ рднрд┐рдиреНрди рд╣реИ рдХрд┐ рдпрд╣ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ
рдПрд╕-рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд рдЗрд╖реНрдЯрддрдо рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдирд┐рдореНрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдорд┐рд▓рд╛:
class Anubis { string $key
Anubis::setKey($key, $raw_key = false)
, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдирд╛рдо рдХрд╛ рдЕрд░реНрде рд╣реИ, рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд╛рда рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
"VeryStrongPassword"
), рдФрд░ рдереЛрдбрд╝рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ (рдЙрджрд╛рд╣рд░рдг:
hex2bin('575a42654a85020b4f6eaeff03aecb0e')
)ред рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреИрд░рд╛рдореАрдЯрд░
$raw_key
ред
рдпрджрд┐ рд╣рдо рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЙрд╕рдХреА рд▓рдВрдмрд╛рдИ (32-рдмрд┐рдЯ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ 128 рд╕реЗ 320 рдмрд┐рдЯ рддрдХ) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕рдХреА рд╢реБрджреНрдзрддрд╛ рдХрд╛ рднреА рдзреНрдпрд╛рди рд░рдЦрддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдХреБрдВрдЬреА рдмрд╣реБрдд рд▓рдВрдмреА рд╣реИ, рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реИ, рдпрд╛ 32 рдмрд┐рдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ
Anubis::setKey()
рд╡рд┐рдзрд┐ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджреЗрдЧреАред рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд░рд▓ рдкрд╛рда рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ
рдкреНрд░рдореБрдЦ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рдХреЛрдИ рднреА рдРрд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ "рдкреНрд░рдореБрдЦ рдкреАрдврд╝реА рдлрд╝рдВрдХреНрд╢рди" рдпрд╛ "рдХреБрдВрдЬреА рдкреАрд╕ рдлрд╝рдВрдХреНрд╢рди" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рдПрдХ рдкреНрд░рдореБрдЦ рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдирд┐рдпрдорд┐рдд
рдПрдЪрдПрдордПрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдЧрдд рдЧреБрдгреЛрдВ (
Anubis::KDF_salt
,
Anubis::KDF_algo
) рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, 16 рд╢реВрдиреНрдп рдУрдХрдЯреЗрдЯреНрд╕ рдХреА рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
рдЙрдкрдпреЛрдЧ рдирдордХ рдХреЗ рд░реВрдк
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЧреБрдгрд╡рддреНрддрд╛
SHA-256 рд╣реИ ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдирдордХ рдХреЗ рдирд┐рдпрдорд┐рдд рдПрдордбреА 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЖрдк рдХреБрдВрдЬреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдореВрд▓ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЕрдиреБрдкрдпреБрдХреНрдд рд▓рдВрдмрд╛рдИ (128 рд╕реЗ рдХрдо, 320 рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ 32 рдмрд┐рдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ), рд╡рд░реНрдгреЛрдВ рдХрд╛ рдПрдХ рд╕реАрдорд┐рдд рд╕реЗрдЯ (рдЖрдорддреМрд░ рдкрд░,
a-zA-Z0-9!@#$%^&*(){}[]\/*-+.,?';:~`_"|
) рдФрд░ рдкрд╛рда рдХреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдирд┐рд░реНрднрд░рддрд╛ (рдпрджрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдкрд╛рда рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд╣реИ); рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЧрд╣ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
Anubis::key
рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреБрдВрдЬреА рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕рдЯреАрдХ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ (рдзреНрдпрд╛рди рджреЗрдВ, рди рдХрд┐ рдлрд╝реАрд▓реНрдб рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рд╣реИрдВ рдЬреЛ рдмрд╛рд╣рд░ рд╕реЗ рд╕реБрд▓рдн рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧреБрдг - рдЬрдм рдкреНрд░рддреНрдпреЗрдХ рд░реАрдб рдпрд╛ рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ), рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред
рдкрд╛рда рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, Anubis рд╕рд┐рдлрд░ рдХреА рдХреБрдВрдЬреА 128-рдмрд┐рдЯреНрд╕ (16 рдмрд╛рдЗрдЯреНрд╕) рд╕реЗ 320-рдмрд┐рдЯреНрд╕ (40 рдмрд╛рдЗрдЯреНрд╕) рдореЗрдВ 320 рдмрд┐рдЯреНрд╕ (40 рдмрд╛рдЗрдЯреНрд╕) рддрдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдХреБрдВрдЬреА рд╕реМрдВрдкреА рдЧрдИ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Anubis::key
рдорд╛рдзреНрдпрдо рд╕реЗ, рдмрд╣реБрдд рдмрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдХреБрдВрдЬреА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХреЛрдИ рднреА рдХрдо рд╕реЗ рдХрдо рдкреНрд░рддрд┐рд░реЛрдз рджреНрд╡рд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдХрд╛рд░ рдореЗрдВ рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдмрд░рд╛рдмрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛ рддреЛ рдЙрдиреНрд╣реЗрдВ рдХрдо рд╕реЗ рдХрдо рдХрд░реЗрдВ, рдпрд╛ рдкреИрд░рд╛рдиреЙрдпрдб рдореЛрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд▓рдВрдмрд╛рдИ рдХреЛ 320 рдмрд┐рдЯ рддрдХ рдмрдврд╝рд╛рдПрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдЧрд▓рдд рдорд╛рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдВрдмрд╛рдИ рдХреА рдЪрд╛рдмрд┐рдпрд╛рдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рддрджрдиреБрд╕рд╛рд░ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рд▓рдВрдмрд╛рдИ рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреАред
рдирддреАрдЬрддрди, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдХреБрдВрдЬреА, рдореБрдЦреНрдп рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрд╢рд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдВрднрд╡ рд▓рдВрдмрд╛рдИ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореВрд▓ рдХреБрдВрдЬреА рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдХрдо рдирд╣реАрдВред рдпрд╛рдиреА рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреБрдВрдЬреА
"010101010101"
(12 рдмрд╛рдЗрдЯреНрд╕) рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреБрдВрдЬреА рдХреЛ 16 рдмрд╛рдЗрдЯреНрд╕ (128 рдмрд┐рдЯреНрд╕) рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдореИрдВ
"10101010101010101"
(17 рдмрд╛рдЗрдЯреНрд╕) рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреБрдВрдЬреА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 20 рдмрд╛рдЗрдЯреНрд╕ (160 рдмрд┐рдЯреНрд╕) рд▓рдВрдмреА рд╣реЛрдЧреА, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рдХреБрдВрдЬреА рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рд▓реМрдЯрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
Anubis::encrypt($data)
рдФрд░
Anubis::decrypt($data)
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рдЕрдкрдиреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐
decrypt(encrypt($data)) == $data
ред
рдпрд╣рд╛рдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, Anubis рдПрдХ рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░ рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдмреНрд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдпрд╛рдиреА рдореВрд▓ рд╕рдВрджреЗрд╢ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 128 рдмрд┐рдЯ рд▓рдВрдмрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЛ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ (рдФрд░ рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ 16 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ) рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдХреБрдЫ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рддрд╛рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рдкрд╛рда рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рд╕рдВрджреЗрд╢ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рд╕рдВрджреЗрд╢ред рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб, рдмрд╣реБрдд рдХреБрдЫред рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрд╛рда рдХрд╛ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рд╣рдореЗрд╢рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢ рдХреЗ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд▓реЙрдХ рдХрдкрд▓рд┐рдВрдЧ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреЗ рдмреНрд▓реЙрдХ рдХреЛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрд░рдВрднреАрдХрд░рдг рд╡реЗрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрд╢рд░реНрддреЗ рдХрд┐ рдПрдХрдореБрд╢реНрдд рдЖрд░рдВрднреАрдХрд░рдг рд╡реИрдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕реНрд░реЛрдд рдкрд╛рда рдХрд╛ рдПрдХ рд╣реА рдмреНрд▓реЙрдХ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рджреЗрдЧрд╛, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкрдЯрд╛рдЦреЗ рд╕реЗ рд╡рдВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рдФрд░ рдПрдХ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рд╕рдордп рд╕реНрдЯрд╛рдореНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд░рдВрднреАрдХрд░рдг рд╡реЗрдХреНрдЯрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╣реА рдХреБрдВрдЬреА рдХреЗ рд▓рд┐рдП рджреЛ рдЖрд░рдВрднреАрдХрд░рдг рд╡реИрдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ)ред
рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЕрдкрдиреЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдЪреВрдВрдХрд┐ рдЖрд░рдВрднреАрдХрд░рдг рд╡реЗрдХреНрдЯрд░ рдХреЛ рдЧреБрдкреНрдд рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореИрдВ рдЗрд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдореЗрдВ рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡реЗрдХреНрдЯрд░ рдХреЛ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╕реАрдзреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ред
рдмреНрд▓реЙрдХ рд╕рд┐рдлрд░реНрд╕ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдЙрддреНрдкрдиреНрди рдПрдХ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдХрд╛ рдЖрдХрд╛рд░ рд╣рдореЗрд╢рд╛ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдХреЛ рдмреНрд▓реЙрдХ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреВрд░рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╕рдордп, рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╢реЗрд╖ рдХреЛ рд╢реВрдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рдмрд╕ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХрд┐рд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореВрд▓ рд╕рдВрджреЗрд╢ рдореЗрдВ рдЕрд╢рдХреНрдд рд╡рд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрджреЗрд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реА рдирд╣реАрдВ рд╣рдЯрд╛рдПрдВрдЧреЗ? рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╕рдВрднрд╛рд╡рд┐рдд рдкрдЯрд╛рдЦрд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреНрдпреЛрдВ рджреЗрдВ рдХрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдХреНрд╕рд░ 1 рд╕реЗ 15 рд╢реВрдиреНрдп рд╡рд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ?
рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЧрдпрд╛ред рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрджрд┐ рдЕрдЪрд╛рдирдХ рдореВрд▓ рд╕рдВрджреЗрд╢ рдХреА рд▓рдВрдмрд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдмрд╣реБ рд╣реИ, рдФрд░ рдХреЛрдИ рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдмреНрд▓реЙрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫрджреНрдо рд╡рд░реНрдгреЛрдВ рд╕реЗ рднрд░рдирд╛ рд╣реЛрдЧрд╛ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдЯреНрд╕ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЙрддрдиреЗ рд╣реА рд╡рд░реНрдг рдорд┐рдЯрд╛ рджреЗрдЧрд╛ рдЬрд┐рддрдирд╛ рд╕рдВрдХреЗрдд рджрд┐рдП рдЧрдП рд╣реИрдВ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдореЗрдВред рдмреЗрд╢рдХ, рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рднреА рдпрд╣рд╛рдВ рдмрдиреА рд╣реБрдИ рд╣реИрдВ - рдореВрд▓ рд╕рдВрджреЗрд╢ рдХреЗ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдореЗрдВ рдЕрдм рд╣рдореЗрд╢рд╛
chr(1)
рд╕реЗ
chr(16)
, рдХреБрд▓ 16 рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣, рдлрд┐рд░ рднреА, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рд╕реНрд░реЛрдд рд╕рдВрджреЗрд╢ рд╕реНрд░реЛрдд рдкрд╛рда рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реИ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд░реИрдХрд░ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рда рд╕рдВрджреЗрд╢ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ "рдкреВрдВрдЫ" рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) ред
рддрд░реАрдХреЗ
Anubis::encryptFile($src, $dest)
рдФрд░
Anubis::decryptFile($src, $dest)
Anubis::encrypt($data)
рд╕рдорд╛рди
Anubis::decryptFile($src, $dest)
Anubis::encrypt($data)
рдФрд░
Anubis::decrypt($data)
рдЗрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрд┐ рдореВрд▓ рд╕рдВрджреЗрд╢ рдпрд╣рд╛рдБ рдЗрд╕реЗ
$src
рдирд╛рдордХ рдлрд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо
$dest
рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдЪрдВрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдФрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╣рд╛рдВ рдореИрдВ "рдмреНрд▓реЙрдХ" рд╢рдмреНрдж рд╕реЗ рдмрдЪрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдЙрд╕ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рди рджреЗрдВ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ), рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░
Anubis::file_blocksize
рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
Anubis::file_blocksize
, рдпрд╣ рдЪрдпрди рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЛ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛, рдЬрдмрдХрд┐ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА (рдЪрдВрдХ рдХреЛ рдкреВрд░реА рд░реИрдо рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЪрдВрдХ рдХрд╛ рдЖрдХрд╛рд░ рдЖрдзрд╛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
рдЦреИрд░, рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреВрд░рд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:
<?php require_once 'anubis.class.php'; $src = 'secret_message.txt'; $encrypted = 'encrypted.file'; $decrypted = 'decrypted_message.txt'; $cypher = new Anubis(); $cypher->key = 'strong password'; $cypher->encryptFile($src, $encrypted); $cypher->decryptFile($encrypted, $decrypted); $src_hash = md5_file($src); $decrypted_hash = md5_file($decrypted); echo "Src: $src_hash\n"; echo "Dest: $decrypted_hash\n";
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЗрддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рдерд╛ред рдЕрдзрд┐рдХрддрдо рдХреБрдВрдЬреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде, рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рд▓рдЧрднрдЧ 100 KB / s (рд▓рдЧрднрдЧ 6400 рдмреНрд▓реЙрдХ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб) рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдиреНрдпреВрдирддрдо рдХреБрдВрдЬреА рд▓рдВрдмрд╛рдИ 150-160 KB / s (рд▓рдЧрднрдЧ 10,000 рдмреНрд▓реЙрдХ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб) рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рд╣реИрдВ (рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рд╕рдордп рдирд┐рдЬреА рд╡рд┐рдзрд┐
Anubis::crypt()
- рд╕реАрдзреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди / рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдмрд╛рд░ рд╕реБрдиреВрдВрдЧрд╛ред
рдЧрд┐рдЯрд╣рдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рд╕реНрд░реЛрдд рдХреЛрдб, рдЙрджрд╛рд╣рд░рдг, рд╡рд┐рдХреА):
https://github.com/kolonist/php-bubisAnubis рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкреГрд╖реНрда:
http://www.larc.usp.br/~pbarreto/AnubisPage.html