MCP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ тЖТ

рдЧрдгрдирд╛ рджрд░реНрдЬ рдХрд░реЗрдВ

рд╕реВрддреНрд░ (рдлреЙрд░реНрдореВрд▓рд╛)

рд╡рд┐рдЬреНрдЮрд╛рдкрди

рдкрд░рд┐рдгрд╛рдо

Base64 рдЖрдЙрдЯрдкреБрдЯ
SGVsbG8=
UTF-8 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛
рдЗрдирдкреБрдЯ рдмрд╛рдЗрдЯреНрд╕ (UTF-8) 5
рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрдг 8

Base64 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреНрдпрд╛ рд╣реИ?

Base64 рдПрдХ рдмрд╛рдЗрдирд░реА-рд╕реЗ-рдЯреЗрдХреНрд╕реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рддрд░реАрдХрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рд░реНрдлрд╝ 64 рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп ASCII рд╡рд░реНрдгреЛрдВ рд╕реЗ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ: A-Z, a-z, 0-9, рд╕рд╛рде рд╣реА + рдФрд░ /ред рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ HTML/CSS рдореЗрдВ рдЗрдореЗрдЬ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ (data URI), рдИрдореЗрд▓ рдореЗрдВ рдмрд╛рдЗрдирд░реА рдЕрдЯреИрдЪрдореЗрдВрдЯ рднреЗрдЬрдиреЗ (MIME), JSON Web Token рдореЗрдВ, рдФрд░ рд╣рд░ рдЙрд╕ рдЬрдЧрд╣ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ рд╕рд┐рд░реНрдлрд╝-рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реЗ рдЪреИрдирд▓ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЧреБрдЬрд╝рд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЯреВрд▓ рдЖрдкрдХреЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИ тАФ рдкрд╣рд▓реЗ UTF-8 рдмрд╛рдЗрдЯреНрд╕ рдирд┐рдХрд╛рд▓реА рдЬрд╛рддреА рд╣реИрдВ, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдПрдиреНрдХреЛрдбрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдЕрдкрдирд╛ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдпрд╛ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░ рджреЗрдВред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ UTF-8 рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ, рдорд╛рдирдХ Base64 рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд▓рдЧрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдиреНрдХреЛрдб рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрдирдкреБрдЯ рдмрд╛рдЗрдЯ рдХрд╛рдЙрдВрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдлрд╝реЙрд░реНрдореВрд▓рд╛ рдЖрд╕рд╛рди рднрд╛рд╖рд╛ рдореЗрдВ

рдПрдиреНрдХреЛрдбрд░ рдЗрдирдкреБрдЯ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рддреАрди-рддреАрди рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИред рддреАрди рдмрд╛рдЗрдЯреНрд╕ рдорд┐рд▓рдХрд░ 24 рдмрд┐рдЯ рдмрдирд╛рддреА рд╣реИрдВ, рдЬреЛ рдмрд░рд╛рдмрд░ рдмрдБрдЯрдХрд░ рдЪрд╛рд░ 6-рдмрд┐рдЯ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЖ рдЬрд╛рддреА рд╣реИрдВред рд╣рд░ 6-рдмрд┐рдЯ рдорд╛рди (0тАУ63) рд╡рд░реНрдгрдорд╛рд▓рд╛ рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрдг рдмрдирд╛рддрд╛ рд╣реИред рдЬрдм рдЗрдирдкреБрдЯ рдХреА рд▓рдВрдмрд╛рдИ 3 рдХрд╛ рдЧреБрдгрдХ рдирд╣реАрдВ рд╣реЛрддреА, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЖрдЦрд╝рд┐рд░реА рд╕рдореВрд╣ рдХреЛ рдкреИрдб рдХрд░ рджреЗрддрд╛ рд╣реИ: рдПрдХ рдмрдЪреА рд╣реБрдИ рдмрд╛рдЗрдЯ рд╕реЗ рджреЛ рд╡рд░реНрдг рдФрд░ == рдмрдирддреЗ рд╣реИрдВ, рдФрд░ рджреЛ рдмрдЪреА рд╣реБрдИ рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рддреАрди рд╡рд░реНрдг рдФрд░ рдПрдХ = рдмрдирддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХреА рд▓рдВрдмрд╛рдИ рд╣рдореЗрд╢рд╛ 4 ├Ч ceil(n/3) рд╣реЛрддреА рд╣реИред

$$\text{Base64} = \operatorname{encode}_{64}\!\left(\text{Text}\right), \qquad L_{out} = 4 \left\lceil \frac{L_{in}}{3} \right\rceil$$

рддреАрди 8-рдмрд┐рдЯ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдЪрд╛рд░ 6-рдмрд┐рдЯ Base64 рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рджрд┐рдЦрд╛рддрд╛ рдЖрд░реЗрдЦ
Base64 рддреАрди 8-рдмрд┐рдЯ рдмрд╛рдЗрдЯреНрд╕ (24 рдмрд┐рдЯ) рдХреЛ рдЪрд╛рд░ 6-рдмрд┐рдЯ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрд╛рдБрдЯрддрд╛ рд╣реИ, рд╣рд░ рдПрдХ рдПрдХ рдЕрдХреНрд╖рд░ рд╕реЗ рдореИрдк рд╣реЛрддрд╛ рд╣реИред

рд╣рд▓ рдХрд┐рдпрд╛ рд╣реБрдЖ рдЙрджрд╛рд╣рд░рдг

рдЯреЗрдХреНрд╕реНрдЯ Man рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреА ASCII рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВ 77, 97, 110 тЖТ рдмрд╛рдЗрдирд░реА рдореЗрдВ 01001101 01100001 01101110ред рдЗрдиреНрд╣реЗрдВ 6-рдмрд┐рдЯ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдмрд╛рдБрдЯреЗрдВ: 010011 = 19 тЖТ T, 010110 = 22 тЖТ W, 000101 = 5 тЖТ F, 101110 = 46 тЖТ uред рдирддреАрдЬрд╛: TWFu тАФ 3 рдмрд╛рдЗрдЯреНрд╕ рдЕрдВрджрд░ рдЧрдИрдВ, 4 рд╡рд░реНрдг рдмрд╛рд╣рд░ рдЖрдП, рдХреЛрдИ рдкреИрдбрд┐рдВрдЧ рдирд╣реАрдВред рдпрд╣рд╛рдБ \(L_{out} = 4 \left\lceil \frac{3}{3} \right\rceil = 4\)ред

рд╢рдмреНрдж рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдмрд╛рдЗрдЯреНрд╕, рдмрд┐рдЯреНрд╕ рдФрд░ рдлрд┐рд░ Base64 рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдЪрд░рдг рдкреНрд░рд╡рд╛рд╣
рдЙрджрд╛рд╣рд░рдг рд╕рд╣рд┐рдд: рдЯреЗрдХреНрд╕реНрдЯ рдмрд╛рдЗрдЯреНрд╕ рдмрдирддрд╛ рд╣реИ, рдлрд┐рд░ 6-рдмрд┐рдЯ рд╕рдореВрд╣, рдФрд░ рдЕрдВрдд рдореЗрдВ Base64 рд╕реНрдЯреНрд░рд┐рдВрдЧред

рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╡рд╛рд▓

рдореЗрд░реЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ = рдирд┐рд╢рд╛рди рдХреНрдпреЛрдВ рдЖрддреЗ рд╣реИрдВ? рдЬрдм рдЖрдкрдХрд╛ рдЗрдирдкреБрдЯ 3 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдЧреБрдгрдХ рдирд╣реАрдВ рд╣реЛрддрд╛, рддрдм рдкреИрдбрд┐рдВрдЧ рдЖрдЦрд╝рд┐рд░реА рд╕рдореВрд╣ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ, рддрд╛рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдХреА рд▓рдВрдмрд╛рдИ 4 рдХрд╛ рдЧреБрдгрдХ рдмрдиреА рд░рд╣реЗред

рдХреНрдпрд╛ Base64 рдореЗрд░реЗ рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддрд╛ рд╣реИ? рдирд╣реАрдВред Base64 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╣реИ, рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдирд╣реАрдВ тАФ рдХреЛрдИ рднреА рдЗрд╕реЗ рдбрд┐рдХреЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдлрд╝ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдврдВрдЧ рд╕реЗ рднреЗрдЬрдиреЗ рд▓рд╛рдпрдХ рдмрдирд╛рддрд╛ рд╣реИред

рдЖрдЙрдЯрдкреБрдЯ рдЗрдирдкреБрдЯ рд╕реЗ рдмрдбрд╝рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ? Base64 рдбреЗрдЯрд╛ рдХреЛ рд▓рдЧрднрдЧ 33% рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ 3 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ 4 рд╡рд░реНрдг рдмрдирддреЗ рд╣реИрдВред

рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ: