рдкрд░рд┐рдЪрдп
рдирдорд╕реНрддреЗред
рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдЬрдм рдореИрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдкрдврд╝ рд░рд╣рд╛ рдерд╛, рддрдм рдЕрдиреБрд╢рд╛рд╕рди рдореЗрдВ "рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рддрд░реАрдХреЗ" рдХрд╛ рд╢реЛрдз рдЪрд▓ рд░рд╣рд╛ рдерд╛ред рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░, GIF рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╢ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдХреБрдЫ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рднрд╛рдЧ
GIF рдкреНрд░рд╛рд░реВрдк
GIF (Engред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЗрдВрдЯрд░рдЪреЗрдВрдЬ рдлреЙрд░реНрдореЗрдЯ - рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░реВрдк) - рдЧреНрд░рд╛рдлрд┐рдХ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░реВрдк рдЬреЛ 256 рд░рдВрдЧреЛрдВ рддрдХ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ 1987 рдореЗрдВ (GIF87a) рдХрдореНрдкреБрд╡рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 1989 рдореЗрдВ, рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (GIF89a), рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдФрд░ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рдЬреАрдЖрдИрдПрдл рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИред рдЗрди рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рд╣реЛрддреА рд╣реИ (рдпрд╛ рдпрд╣ рдХреБрдЫ рдЭрдВрдбреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЧрд▓рддреА рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдмреНрд▓реЙрдХ рд╕реНрдерд┐рдд рд╣реИред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЧреИрд░-рдПрдирд┐рдореЗрдЯреЗрдб GIF- рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк GIF89a рдХреА рд╕рдВрд░рдЪрдирд╛:

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рднреА рд╕рдВрд░рдЪрдирд╛ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рд╕реЗ, рд╣рдо рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рдмреНрд▓реЙрдХ рдФрд░ рдкреИрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдВрдЧреЗ:
CT
- рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ред рдпрджрд┐ рдпрд╣ рдзреНрд╡рдЬ рд╕реЗрдЯ рд╣реИ, рддреЛ рддрд╛рд░реНрдХрд┐рдХ рд╕реНрдХреНрд░реАрди рдХреЗ рд╡рд┐рд╡рд░рдгрдХ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредSize
- рдкреИрд▓реЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдЪрд┐рддреНрд░ рдореЗрдВ рд░рдВрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рди рдирд┐рдореНрди рд╣реИрдВ:
рдЖрдХрд╛рд░ | рд░рдВрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ | рдкреИрд▓реЗрдЯ рдЖрдХрд╛рд░, рдмрд╛рдЗрдЯреНрд╕ |
---|
7 | 256 | 768 |
6 | 128 | 384 |
5 | 64 | 192 |
4 | 32 | 96 |
3 | 16 | 48 |
2 | 8 | 24 |
1 | 4 | 12 |
0 | 2 | 6 |
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рддрд░реАрдХреЗ
рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рдПрд▓рдПрд╕рдмреА рд╡рд┐рдзрд┐ (рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ, рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ)
- рдкреИрд▓реЗрдЯ рдПрдбрд┐рд╢рди рд╡рд┐рдзрд┐
рдПрд▓рдПрд╕рдмреА рд╡рд┐рдзрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреЗрдЧреНрдиреЛрдЧреНрд░рд╛рдлрд╝реА рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯреНрд╕ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рдХреЗ рдмрд╛рдЗрдЯреНрд╕) рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдХреЗ рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЫрд┐рдкреЗ рд╣реБрдП рд╣реИрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЕрдВрддрд┐рдо рджреЛ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ 24-рдмрд┐рдЯ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдкреИрд▓реЗрдЯ рдХрд╛ рд░рдВрдЧ рд▓рд╛рд▓, рдиреАрд▓реЗ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рддреАрди рдмрд╛рдЗрдЯреНрд╕ рд╣реИ, рдЗрд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рдПрдореНрдмреЗрдбреЗрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдШрдЯрдХ рдЕрдзрд┐рдХрддрдо 3/255 рдЧреНрд░реЗрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХрд╛ рдмрджрд▓рд╛рд╡, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрджреГрд╢реНрдп рдпрд╛ рдорд╛рдирд╡ рдЖрдВрдЦ рдХреЗ рд▓рд┐рдП рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдпрд╣ рдХрдо-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╕реВрдЪрдирд╛ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕реАрдзреЗ рдЫрд╡рд┐ рдкреИрд▓реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред рдЪреВрдВрдХрд┐ рдкреИрд▓реЗрдЯ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ 256 рд░рдВрдЧ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рдШрдЯрдХ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЗ рджреЛ рдмрд┐рдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрджреЗрд╢ рдХреА рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ (рдЫрд╡рд┐ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдкреИрд▓реЗрдЯ рдХреЗ рд╕рд╛рде) 192 рдмрд╛рдЗрдЯреНрд╕ рд╣реИред рдЫрд╡рд┐ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
рдПрдХ рдкреИрд▓реЗрдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдЬреЛ рдХреЗрд╡рд▓ GIF рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИред рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рдкреИрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрд▓реЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд░рдВрдЧреЛрдВ рдХреЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдЗрдЯреНрд╕ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдорд┐рд▓рддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреИрд▓реЗрдЯ рдХрд╛ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ 2 рд░рдВрдЧ (6 рдмрд╛рдЗрдЯреНрд╕) рд╣реИ, рддреЛ рдПрдореНрдмреЗрдбреЗрдб рд╕рдВрджреЗрд╢ рдХрд╛ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ 256 ├Ч 3тАУ6 = 762 рдмрд╛рдЗрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдиреБрдХрд╕рд╛рди рдХрдо рд╕реБрд░рдХреНрд╖рд╛ рд╣реИ, рдЖрдк рдХрд┐рд╕реА рднреА рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдореНрдмреЗрдбреЗрдб рд╕рдВрджреЗрд╢ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╕рдВрджреЗрд╢ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣рд┐рд╕реНрд╕рд╛
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдбрд┐рдЬрд╛рдЗрди
рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг
com.tsarik.steganography
рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реЛрдВрдЧреЗред рдЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ
encrypt
рдФрд░
decrypt
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде
encrypt
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ,
Binary
рдХреНрд▓рд╛рд╕ рдЬреЛ рдмрд┐рдЯ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде
UnableToEncryptException
рдФрд░
UnableToDecryptException
рдЕрдкрд╡рд╛рдж рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛ
UnableToDecryptException
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд░рдорд╢рдГ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреИрдХреЗрдЬ
com.tsarik.programs.gifed
рдореЗрдВ рд╕реНрдерд┐рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд▓рд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдПрдХ рд╡рд░реНрдЧ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ; рдФрд░ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬред
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реНрд╡рдпрдВ
com.tsarik.programs.gifed.gif
GIFEncryptorByLSBMethod
рдФрд░
GIFEncryptorByPaletteExtensionMethod
com.tsarik.programs.gifed.gif
рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпреЗ рджреЛрдиреЛрдВ рдХрдХреНрд╖рд╛рдПрдВ
Encryptor
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреАред
рдЬреАрдЖрдИрдПрдл рдкреНрд░рд╛рд░реВрдк рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЫрд╡рд┐ рдкреИрд▓реЗрдЯ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
GIFEncryptorByLSBMethod
рдФрд░
GIFEncryptorByPaletteExtensionMethod
рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
GIFEncryptorByLSBMethod
рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

firstLSBit
рдФрд░
secondLSBit
рдореЗрдВ рдЫрд╡рд┐ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреА рдмрд┐рдЯ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд╣рд╛рдБ рд╕реЗред
checkSequence
рдлрд╝реАрд▓реНрдб рдмрд┐рдЯреНрд╕ рдХреЗ рдЪреЗрдХ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдПрдореНрдмреЗрдбреЗрдб рд╕рдВрджреЗрд╢ рдХреА рдкрд╣рдЪрд╛рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЦрддреА рд╣реИред рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐
getEncryptingFileParameters
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрджреЗрд╢ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
encrypt
рд╡рд░реНрдЧ рдХреЗ
encrypt
рд╡рд┐рдзрд┐ рдХреА рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо:

рдФрд░ рдЗрд╕рдХрд╛ рдХреЛрдб:
@Override public void encrypt(File in, File out, String text) throws UnableToEncodeException, NullPointerException, IOException { if (in == null) { throw new NullPointerException("Input file is null"); } if (out == null) { throw new NullPointerException("Output file is null"); } if (text == null) { throw new NullPointerException("Text is null"); }
GIFEncryptorByLSBMethod
рд╡рд░реНрдЧ рдХреА
decrypt
рд╡рд┐рдзрд┐ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб:

@Override public String decrypt(File in) throws UnableToDecodeException, NullPointerException, IOException { if (in == null) { throw new NullPointerException("Input file is null"); }
GIFEncryptorByPaletteExtensionMethod
рд╡рд░реНрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдХреЗрд╡рд▓ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╣реЗрдЬрдиреЗ / рдкрдврд╝рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЕрд▓рдЧ рд╣реИред
MainFrame
рд╡рд░реНрдЧ "рдЖрд╡рд░рдг"
encryptImage(Encryptor encryptor)
рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
encryptImage(Encryptor encryptor)
рдФрд░
decryptImage(Encryptor encryptor)
, рдЬреЛ
Encryptor
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рд╕рдВрд╡рд╛рдж рдЦреЛрд▓реЗрдВ, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдПрдВ, рдЖрджрд┐ред ; рд╕рд╛рде рд╣реА рдЕрдиреНрдп рддрд░реАрдХреЗ:
openImage()
, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЫрд╡рд┐,
exit()
рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ, рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
createComponents()
- рдлрд╝реЙрд░реНрдо рдШрдЯрдХ рдмрдирд╛рдирд╛,
loadImageFile(File f)
- рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдирд╛ред
GIFEncryptorByPaletteExtensionMethod
рд╡рд░реНрдЧ
GIFEncryptorByPaletteExtensionMethod
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
GIFEncryptorByPaletteExtensionMethod
рд╡рд░реНрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдорд╛рди рд╣реИ, рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдмрд╛рдЗрдЯреНрд╕ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреИрд▓реЗрдЯ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдХрд╛рдо
рдПрд▓рдмреАрдПрд╕ рд╡рд┐рдзрд┐
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдРрд╕реА рдХреЛрдИ рдЫрд╡рд┐ рд╣реИ:

рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ, рдкреИрд▓реЗрдЯ рдореЗрдВ 256 рд░рдВрдЧ рд╣реЛрддреЗ рд╣реИрдВ (рдпрд╣ рдкреЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред рдкрд╣рд▓реЗ рдЪрд╛рд░ рд░рдВрдЧ: рд╕рдлреЗрдж, рдХрд╛рд▓рд╛, рд▓рд╛рд▓, рд╣рд░рд╛ред рд╢реЗрд╖ рд░рдВрдЧ рдХрд╛рд▓реЗ рд╣реИрдВред рд╡реИрд╢реНрд╡рд┐рдХ рдкреИрд▓реЗрдЯ рдХреЗ рдмрд┐рдЯреНрд╕ рдХрд╛ рдХреНрд░рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧрд╛:
111111
11 111111
11 111111
11 000 000
00 00 000 000 000
00 001111
11 000 000
00 000 000 000
00 00 001111
11 000 000
00 ...

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

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