เดเดฎเตเดเด
เดชเตเดฐเดฟเดตเตเดคเตเดธเตเดคเตเดตเตเดฏเต.
เด
เดงเดฟเดเด เดคเดพเดฎเดธเดฟเดฏเดพเดคเต, เดเดพเตป เดฏเตเดฃเดฟเดตเตเดดเตเดธเดฟเดฑเตเดฑเดฟเดฏเดฟเตฝ เดชเด เดฟเดเตเดเตเดฎเตเดชเตเตพ, "เดตเดฟเดตเดฐ เดธเตเดฐเดเตเดทเดฏเตเดเต เดธเตเดซเตเดฑเตเดฑเตเดตเตเดฏเตผ เดฐเตเดคเดฟเดเตพ" เดเดจเตเดจ เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เดเดฐเต เดเตเดดเตโเดธเต เดตเตผเดเตเดเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต. GIF เดซเดฏเดฒเตเดเดณเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเตพเดเตเดเตเตผเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเด เดธเตเดทเตโเดเดฟเดเตเดเดพเตป เด
เดธเตเตปเดฎเตเดจเตเดฑเดฟเดจเต เดเดเตเดเดณเตเดเต เดเดตเดถเตเดฏเดฎเตเดฃเตเดเต. เดเดพเดตเดฏเดฟเตฝ เดเตเดฏเตเดฏเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต.
เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดพเตป เดเดฟเดฒ เดธเตเดฆเตเดงเดพเดจเตเดคเดฟเด เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเตเด, เด เดคเตเดชเตเดฒเต เด เดเตเดฑเดฟเดฏ เดชเตเดฐเตเดเตเดฐเดพเด เดเดเตเดเดจเต เดธเตเดทเตเดเดฟเดเตเดเต.
เดธเตเดฆเตเดงเดพเดจเตเดคเดฟเด เดญเดพเดเด
GIF เดซเตเตผเดฎเดพเดฑเตเดฑเต
GIF (เดเตเดฐเดพเดซเดฟเดเตเดธเต เดเดจเตเดฑเตผเดเตเดเตเดเต เดซเตเตผเดฎเดพเดฑเตเดฑเต - เดเดฎเตเดเตเดเตพ เดเตเดฎเดพเดฑเตเดฑเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดซเตเตผเดฎเดพเดฑเตเดฑเต) เดเตเดฐเดพเดซเดฟเดเต เดเดฎเตเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดซเตเตผเดฎเดพเดฑเตเดฑเดพเดฃเต, 256 เดจเดฟเดฑเดเตเดเดณเดฟเดฒเตเดณเตเดณ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดเตเดฃเดจเดฟเดฒเดตเดพเดฐเด เดจเดทเตเดเดชเตเดชเตเดเดพเดคเต เดเดเดชเตเดฐเดธเต เดเตเดฏเตเดค เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เด เดซเตเตผเดฎเดพเดฑเตเดฑเต 1987-เตฝ (GIF87a) เดเดฎเตเดชเตเดฏเตเดธเตผเดตเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเตเดเดณเดฟเตฝ เดฑเดพเดธเตเดฑเตเดฑเตผ เดเดฎเตเดเตเดเตพ เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดคเตเดคเดคเดพเดฃเต. 1989-เตฝ, เดซเตเตผเดฎเดพเดฑเตเดฑเต เดชเดฐเดฟเดทเตเดเดฐเดฟเดเตเดเต (GIF89a), เดธเตเดคเดพเดฐเตเดฏเดคเดฏเตเดเตเดเตเด เดเดจเดฟเดฎเตเดทเดจเตเดฎเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดเตเตผเดคเตเดคเต.
GIF เดซเดฏเดฒเตเดเตพเดเตเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดเดเดจเดฏเตเดฃเตเดเต. เด เดฌเตเดฒเตเดเตเดเตเดเตพเดเตเดเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดฆเตเตผเดเตเดฏเดฎเตเดฃเตเดเต (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดคเต เดเดฟเดฒ เดซเตเดฒเดพเดเตเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต), เด เดคเดฟเดจเดพเตฝ เดเดฐเต เดฌเตเดฒเตเดเตเดเตเด เดเดตเดฟเดเตเดฏเดพเดฃเต เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฐเต เดคเตเดฑเตเดฑเต เดตเดฐเตเดคเตเดคเตเดจเตเดจเดคเต เดฎเดฟเดเตเดเดตเดพเดฑเตเด เด เดธเดพเดงเตเดฏเดฎเดพเดฃเต. GIF89a เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเตเตบ-เดเดจเดฟเดฎเตเดฑเตเดฑเดกเต GIF เดเดฎเตเดเดฟเดจเตเดฑเต เดเดเดจ:
เดเดเดจเดฏเตเดเต เดเดฒเตเดฒเดพ เดฌเตเดฒเตเดเตเดเตเดเดณเดฟเดฒเตเด, เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ เดเดเตเดณ เดชเดพเดฒเดฑเตเดฑเต เดฌเตเดฒเตเดเตเดเดฟเดฒเตเด เดชเดพเดฒเดฑเตเดฑเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดเดณเดพเดฏ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเดฟเดฒเตเด เดเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเดพเดเตเด:
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
เดเตปเดเตเดฐเดฟเดชเตเดทเตป เดฐเตเดคเดฟเดเตพ
เดเดฎเตเดเต เดซเดฏเดฒเตเดเดณเดฟเตฝ เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเตปเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด:
- LSB (Least Significant Bit) เดฐเตเดคเดฟ
- เดชเดพเดฒเดฑเตเดฑเต เดเตเดเตเดเดฟเดเตเดเตเตผเดเตเดเตฝ เดฐเตเดคเดฟ
LSB เดฐเตเดคเดฟ - เดธเตเดฑเตเดฑเตเดเดจเตเดเตเดฐเดพเดซเดฟเดฏเตเดเต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดฐเตเดคเดฟ. เดเดฃเตเดเตเดฏเตโเดจเดฑเดฟเดฒเต เด เดตเดธเดพเดจเดคเตเดคเต เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด เดฌเดฟเดฑเตเดฑเตเดเตพ (เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเตเดฒเตเดฌเตฝ เดชเดพเดฒเดฑเตเดฑเต เดฌเตเดฑเตเดฑเตเดเตพ) เดฎเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดฌเดฟเดฑเตเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเดคเต เดเดคเดฟเตฝ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เด เดฐเตเดคเดฟเดฏเตเดเต เดญเดพเดเดฎเดพเดฏเดฟ เดเดเตเดณ เดชเดพเดฒเดฑเตเดฑเต เดฌเตเดฑเตเดฑเตเดเดณเดฟเดฒเต เด เดตเดธเดพเดจ เดฐเดฃเตเดเต เดฌเดฟเดฑเตเดฑเตเดเตพ เดชเตเดฐเตเดเตเดฐเดพเด เดเดชเดฏเตเดเดฟเดเตเดเตเด. เดเดคเดฟเดจเตผเดคเตเดฅเด, เดเดฐเต 24-เดฌเดฟเดฑเตเดฑเต เดเดฟเดคเตเดฐเดคเตเดคเดฟเดจเต, เดเตเดตเดชเตเดชเต, เดจเตเดฒ, เดชเดเตเด เดเดจเตเดจเต เดฎเตเดจเตเดจเต เดฌเตเดฑเตเดฑเตเดเดณเดพเดฃเต เดตเตผเดฃเตเดฃ เดชเดพเดฒเดฑเตเดฑเต เดเดณเตเดณเดคเต, เด เดคเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเตพเดเตเดเตเตผเดคเตเดค เดถเตเดทเด, เดเดฐเต เดตเตผเดฃเตเดฃ เดเดเดเดตเตเด เดชเดฐเดฎเดพเดตเดงเดฟ 3/255 เดเตเดฐเตเดกเตเดทเดจเตเดเตพ เดตเดฐเต เดฎเดพเดฑเตเด. เด เดคเตเดคเดฐเดฎเตเดฐเต เดฎเดพเดฑเตเดฑเด, เดเดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดฎเดจเตเดทเตเดฏเดจเตเดฑเต เดเดฃเตเดฃเดฟเดจเต เด เดฆเตเดถเตเดฏเดฎเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเตเดณเตเดณเดคเต เดเดฏเดฟเดฐเดฟเดเตเดเตเด, เดฐเดฃเตเดเดพเดฎเดคเดพเดฏเดฟ, เดเตเดฃเดจเดฟเดฒเดตเดพเดฐเด เดเตเดฑเดเตเด เดตเดฟเดตเดฐ เดเดเตเดเตเดชเตเดเตเดเต เดเดชเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดเดคเต เดฆเตเดถเตเดฏเดฎเดพเดเดฟเดฒเตเดฒ.
เดตเดฟเดตเดฐเดเตเดเดณเตเดเต เด เดณเดตเต เดเดฟเดคเตเดฐ เดชเดพเดฒเดฑเตเดฑเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเดคเตเดคเต เดจเตเดฐเดฟเดเตเดเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเด. เดชเดพเดฒเดฑเตเดฑเดฟเดจเตเดฑเต เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฒเตเดชเตเดชเด 256 เดจเดฟเดฑเดเตเดเตพ เดเดฏเดคเดฟเดจเดพเตฝ, เดเดฐเต เดจเดฟเดฑเดคเตเดคเดฟเดจเตเดฑเตเดฏเตเด เดเดเดเดคเตเดคเดฟเตฝ เดฐเดฃเตเดเต เดธเดจเตเดฆเตเดถ เดฌเดฟเดฑเตเดฑเตเดเตพ เดเดดเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดชเดฐเดฎเดพเดตเดงเดฟ เดธเดจเตเดฆเตเดถ เดฆเตเตผเดเตเดฏเด (เดเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต เดชเดฐเดฎเดพเดตเดงเดฟ เดชเดพเดฒเดฑเตเดฑเดฟเดจเตเดชเตเดชเด) 192 เดฌเตเดฑเตเดฑเตเดเตพ เดเดฃเต. เดธเดจเตเดฆเตเดถเด เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดพเตฝ, เดซเดฏเดฒเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเดฟเดฒเตเดฒ.
เดชเดพเดฒเดฑเตเดฑเต เดตเดฟเดชเตเดฒเตเดเดฐเดฃ เดฐเตเดคเดฟ, เดเดคเต GIF เดเดเดจเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดเตเดฑเดฟเดฏ เดชเดพเดฒเดฑเตเดฑเต เดเดณเตเดณ เดเดฟเดคเตเดฐเดเตเดเดณเดฟเตฝ เดเดคเต เดเดฑเตเดฑเดตเตเด เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เด เดคเดฟเดจเตเดฑเต เดธเดพเดฐเดพเดเดถเด เด เดคเต เดชเดพเดฒเดฑเตเดฑเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เด เดคเตเดตเดดเดฟ เดเดณเตผ เดฌเตเดฑเตเดฑเตเดเดณเตเดเต เดธเตเดฅเดพเดจเดคเตเดคเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดฌเตเดฑเตเดฑเตเดเตพ เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเต เด เดงเดฟเด เดเดเด เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต เดเดจเตเดจเดคเดพเดฃเต. เดชเดพเดฒเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฑเตเดฑเดตเตเด เดเตเดฑเดเตเด เดตเดฒเตเดชเตเดชเด 2 เดจเดฟเดฑเดเตเดเตพ (6 เดฌเตเดฑเตเดฑเตเดเตพ) เดเดฃเตเดจเตเดจเต เดเดเตเดเตพ เดเดฐเตเดคเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเตพเดเตเดเตเตผเดคเตเดค เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฒเตเดชเตเดชเด 256 ร 3-6 = 762 เดฌเตเดฑเตเดฑเตเดเตพ เดเดเดพเด. เดเตเดฑเดเตเด เดเตเดฐเดฟเดชเตโเดฑเตเดฑเตเดเตเดฐเดพเดซเดฟเดเต เดธเตเดฐเดเตเดทเดฏเดพเดฃเต เดชเตเดฐเดพเดฏเตเดฎ; เดธเดจเตเดฆเตเดถเด เด เดงเดฟเด เดเตปเดเตเดฐเดฟเดชเตโเดทเดจเต เดตเดฟเดงเตเดฏเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดคเต เดเตเดเตโเดธเตโเดฑเตเดฑเต เดเดกเดฟเดฑเตเดฑเดฑเตเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเดฌเดกเต เดเตเดฏเตโเดค เดธเดจเตเดฆเตเดถเด เดตเดพเดฏเดฟเดเตเดเดพเดจเดพเดเตเด.
เดชเตเดฐเดพเดฏเตเดเดฟเด เดญเดพเดเด
เดชเตเดฐเตเดเตเดฐเดพเด เดกเดฟเดธเตเตป
เดเตปเดเตเดฐเดฟเดชเตเดทเตป, เดกเตเดเตเดฐเดฟเดชเตเดทเตป เด
เตฝเดเตเดฐเดฟเดคเดเตเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดเดชเดเดฐเดฃเดเตเดเดณเตเด เดชเดพเดเตเดเตเดเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด com.tsarik.steganography
. เด เดชเดพเดเตเดเตเดเดฟเตฝ เดเดจเตเดฑเตผเดซเตเดธเต เดเตพเดชเตเดชเตเดเตเดจเตเดจเต Encryptor
เดฐเตเดคเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต encrypt
ะธ decrypt
, เดเตเดฒเดพเดธเต Binary
, เดเดคเต เดฌเดฟเดฑเตเดฑเต เด
เดฑเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เดจเตฝเดเตเดจเตเดจเต, เด
เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เดเดดเดฟเดตเดพเดเตเดเตฝ เดเตเดฒเดพเดธเตเดเดณเตเด UnableToEncryptException
ะธ UnableToDecryptException
, เดเดคเต เดเดจเตเดฑเตผเดซเตเดธเต เดฐเตเดคเดฟเดเดณเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต Encryptor
เดฏเดฅเดพเดเตเดฐเดฎเด เดเตปเดเตเดกเดฟเดเดเต, เดกเตเดเตเดกเดฟเดเดเต เดชเดฟเดถเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ.
เดชเตเดฐเดงเดพเดจ เดชเตเดฐเตเดเตเดฐเดพเด เดชเดพเดเตเดเตเดเต com.tsarik.programs.gifed
เดเดฐเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดตเตเดจเตเดจ เดเดฐเต เดชเตเดฐเตเดเตเดฐเดพเด เดเตเดฒเดพเดธเต เดเตพเดชเตเดชเตเดเตเดคเตเดคเตเด main
, เดชเตเดฐเตเดเตเดฐเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต; เดชเตเดฐเตเดเตเดฐเดพเด เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดฒเดพเดธเต; เดฎเดฑเตเดฑเต เดเตเดฒเดพเดธเตเดเดณเตเดฎเดพเดฏเตเดณเตเดณ เดชเดพเดเตเดเตเดเตเดเดณเตเด.
เด
เตฝเดเตเดฐเดฟเดคเดเตเดเตพ เดคเดจเตเดจเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดชเดพเดเตเดเตเดเดฟเตฝ เด
เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเตเด com.tsarik.programs.gifed.gif
เดเตเดฒเดพเดธเตเดเตพ GIFEncryptorByLSBMethod
ะธ GIFEncryptorByPaletteExtensionMethod
. เด เดฐเดฃเตเดเต เดเตเดฒเดพเดธเตเดเดณเตเด เดเดจเตเดฑเตผเดซเตเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเด Encryptor
.
GIF เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดจเตเดฑเต เดเดเดจเดฏเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ, เดเดฎเตเดเต เดชเดพเดฒเดฑเตเดฑเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดชเตเดคเต เด เตฝเดเตเดฐเดฟเดคเด เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
เดเดฐเต เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเด เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป, เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดถเตเดฐเตเดฃเดฟ เดฌเดฟเดฑเตเดฑเตเดเตพ เดเตเตผเดเตเดเตเดฃเตเดเดคเต เดเดตเดถเตเดฏเดฎเดพเดฃเต, เด
เดคเต เดกเตเดเตเดกเตผ เดเดฆเตเดฏเด เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดถเดฐเดฟเดฏเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดคเต เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดฎเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเดจเตเดฆเตเดถเด เดเดฒเตเดฒเตเดจเตเดจเต เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต. เด
เดเตเดคเตเดคเดคเดพเดฏเดฟ เดจเดฟเดเตเดเตพ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดฆเตเตผเดเตเดฏเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เด
เดชเตเดชเตเตพ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดตเดพเดเดเด เดคเดจเตเดจเต.
เดฎเตเดดเตเดตเตป เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเตเดฏเตเด เดเตเดฒเดพเดธเต เดกเดฏเดเตเดฐเด:
เดชเดฐเดฟเดชเดพเดเดฟเดฏเตเดเต เดจเดเดคเตเดคเดฟเดชเตเดชเต
เดฎเตเดดเตเดตเตป เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเตเดฏเตเด เดจเดเดชเตเดชเดพเดเตเดเดฒเดฟเดจเต เดฐเดฃเตเดเต เดเดเดเดเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดพเด: เดเดจเตเดฑเตผเดซเตเดธเต เดเตปเดเตเดฐเดฟเดชเตเดทเตป, เดกเตเดเตเดฐเดฟเดชเตเดทเตป เดฐเตเดคเดฟเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ Encryptor
, เดเตเดฒเดพเดธเตเดเดณเดฟเตฝ GIFEncryptorByLSBMethod
ะธ GIFEncryptorByPaletteExtensionMethod
, เดเดชเดฏเตเดเตเดคเต เดเดจเตเดฑเตผเดซเตเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ.
เดเตเดฒเดพเดธเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด GIFEncryptorByLSBMethod
.
เดจเดฟเดฒเดเตเดเดณเตเด firstLSBit
ะธ secondLSBit
เดธเดจเตเดฆเตเดถเด เดจเตฝเดเตเดฃเตเด เดเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต เดเดฐเต เดฌเตเดฑเตเดฑเดฟเดจเตเดฑเตเดฏเตเด เดฌเดฟเดฑเตเดฑเตเดเดณเตเดเต เดจเดฎเตเดชเดฑเตเดเดณเตเด เดธเดจเตเดฆเตเดถเด เดตเดพเดฏเดฟเดเตเดเตเดฃเตเด เดธเตเดฅเดฒเดตเตเด เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดซเตเตฝเดกเต checkSequence
เดเตพเดเตเดเตเตผเดคเตเดค เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตฝ เดเดฑเดชเตเดชเดพเดเตเดเดพเตป เดเดฐเต เดเตเดเตเดเต เดฌเดฟเดฑเตเดฑเต เดธเตเดเตเดตเตปเดธเต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดฐเตเดคเดฟ getEncryptingFileParameters
เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดเดณเตเด เดจเตฝเดเตเดจเตเดจเต.
เดฐเตเดคเดฟ เด
เตฝเดเตเดฐเดฟเดคเด encrypt
เดเตเดฒเดพเดธเต GIFEncryptorByLSBMethod
:
เด
เดตเดจเตเดฑเต เดเตเดกเตเด:
@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");
}
// read bytes from input file
byte[] bytes = new byte[(int)in.length()];
InputStream is = new FileInputStream(in);
is.read(bytes);
is.close();
// check format
if (!(new String(bytes, 0, 6)).equals("GIF89a")) {
throw new UnableToEncodeException("Input file has wrong GIF format");
}
// read palette size property from first three bits in the 10-th byte from the file
byte[] b10 = Binary.toBitArray(bytes[10]);
byte bsize = Binary.toByte(new byte[] {b10[0], b10[1], b10[2]});
// calculate color count and possible message length
int bOrigColorCount = (int)Math.pow(2, bsize+1);
int possibleMessageLength = bOrigColorCount*3/4;
int possibleTextLength = possibleMessageLength-2;// one byte for check and one byte for message length
if (possibleTextLength < text.length()) {
throw new UnableToEncodeException("Text is too big");
}
int n = 13;
// write check sequence
for (int i = 0; i < checkSequence.length/2; i++) {
byte[] ba = Binary.toBitArray(bytes[n]);
ba[firstLSBit] = checkSequence[2*i];
ba[secondLSBit] = checkSequence[2*i+1];
bytes[n] = Binary.toByte(ba);
n++;
}
// write text length
byte[] cl = Binary.toBitArray((byte)text.length());
for (int i = 0; i < cl.length/2; i++) {
byte[] ba = Binary.toBitArray(bytes[n]);
ba[firstLSBit] = cl[2*i];
ba[secondLSBit] = cl[2*i+1];
bytes[n] = Binary.toByte(ba);
n++;
}
// write message
byte[] textBytes = text.getBytes();
for (int i = 0; i < textBytes.length; i++) {
byte[] c = Binary.toBitArray(textBytes[i]);
for (int ci = 0; ci < c.length/2; ci++) {
byte[] ba = Binary.toBitArray(bytes[n]);
ba[firstLSBit] = c[2*ci];
ba[secondLSBit] = c[2*ci+1];
bytes[n] = Binary.toByte(ba);
n++;
}
}
// write output file
OutputStream os = new FileOutputStream(out);
os.write(bytes);
os.close();
}
เดฐเตเดคเดฟเดฏเตเดเต เด
เตฝเดเตเดฐเดฟเดคเดตเตเด เดธเตเดดเตเดธเต เดเตเดกเตเด decrypt
เดเตเดฒเดพเดธเต GIFEncryptorByLSBMethod
:
@Override
public String decrypt(File in) throws UnableToDecodeException, NullPointerException, IOException {
if (in == null) {
throw new NullPointerException("Input file is null");
}
// read bytes from input file
byte[] bytes = new byte[(int)in.length()];
InputStream is = new FileInputStream(in);
is.read(bytes);
is.close();
// check format
if (!(new String(bytes, 0, 6)).equals("GIF89a")) {
throw new UnableToDecodeException("Input file has wrong GIF format");
}
// read palette size property from first three bits in the 10-th byte from the file
byte[] b10 = Binary.toBitArray(bytes[10]);
byte bsize = Binary.toByte(new byte[] {b10[0], b10[1], b10[2]});
// calculate color count and possible message length
int bOrigColorCount = (int)Math.pow(2, bsize+1);
int possibleMessageLength = bOrigColorCount*3/4;
int possibleTextLength = possibleMessageLength-2; // one byte for check and one byte for message length
int n = 13;
// read check sequence
byte[] csBits = new byte[checkSequence.length];
for (int i = 0; i < 4; i++) {
byte[] ba = Binary.toBitArray(bytes[n]);
csBits[2*i] = ba[firstLSBit];
csBits[2*i+1] = ba[secondLSBit];
n++;
}
byte cs = Binary.toByte(csBits);
if (cs != Binary.toByte(checkSequence)) {
throw new UnableToDecodeException("There is no encrypted message in the image (Check sequence is incorrect)");
}
// read text length
byte[] cl = new byte[8];
for (int i = 0; i < 4; i++) {
byte[] ba = Binary.toBitArray(bytes[n]);
cl[2*i] = ba[firstLSBit];
cl[2*i+1] = ba[secondLSBit];
n++;
}
byte textLength = Binary.toByte(cl);
if (textLength < 0) {
throw new UnableToDecodeException("Decoded text length is less than 0");
}
if (possibleTextLength < textLength) {
throw new UnableToDecodeException("There is no messages (Decoded message length (" + textLength + ") is less than Possible message length (" + possibleTextLength + "))");
}
// read text bits and make text bytes
byte[] bt = new byte[textLength];
for (int i = 0; i < bt.length; i++) {
byte[] bc = new byte[8];
for (int bci = 0; bci < bc.length/2; bci++) {
byte[] ba = Binary.toBitArray(bytes[n]);
bc[2*bci] = ba[firstLSBit];
bc[2*bci+1] = ba[secondLSBit];
n++;
}
bt[i] = Binary.toByte(bc);
}
return new String(bt);
}
เดเตเดฒเดพเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ GIFEncryptorByPaletteExtensionMethod
เดธเดฎเดพเดจเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดตเดฟเดตเดฐเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจ/เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจ เดฐเตเดคเดฟ เดฎเดพเดคเตเดฐเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต.
เดเตเดฒเดพเดธเตเดธเดฟเดฒเต MainFrame
เดฑเดพเดชเตเดชเตผ เดฐเตเดคเดฟเดเตพ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต: encryptImage(Encryptor encryptor)
ะธ decryptImage(Encryptor encryptor)
, เดเดจเตเดฑเตผเดซเตเดธเต เดฐเตเดคเดฟเดเดณเตเดเต เดซเดฒเดเตเดเตพ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเต Encryptor
เดเตเดเดพเดคเต เดเดชเดฏเตเดเตเดคเดพเดตเตเดฎเดพเดฏเดฟ เดธเดเดตเดฆเดฟเดเตเดเตเด, เด
เดคเดพเดฏเดคเต เดเดฐเต เดซเดฏเตฝ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตฝ เดกเดฏเดฒเตเดเต เดคเตเดฑเดเตเดเตเด, เดชเดฟเดถเดเต เดธเดจเตเดฆเตเดถเดเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเด เดคเตเดเดเตเดเดฟเดฏเดต. เด
เดคเตเดชเตเดฒเต เดฎเดฑเตเดฑเต เดฐเตเดคเดฟเดเตพ: openImage()
, เดเดฐเต เดเดฟเดคเตเดฐเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, exit()
, เด
เดคเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเดจเตเดจเต. เด เดฐเตเดคเดฟเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต Action
เดจเตเดฑเต เด
เดจเตเดฌเดจเตเดง เดฎเตเดจเต เดเดจเดเตเดเตพ. เด เดเตเดฒเดพเดธเต เด
เดงเดฟเดเดฎเดพเดฏเดฟ เดธเดนเดพเดฏ เดฐเตเดคเดฟเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต: createComponents()
- เดซเตเด เดเดเดเดเตเดเดณเตเดเต เดธเตเดทเตเดเดฟ, loadImageFile(File f)
โ เดเดฐเต เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเดเดเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดฟเดคเตเดฐเด เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเตเดฒเดพเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ GIFEncryptorByPaletteExtensionMethod
เดเตเดฒเดพเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต GIFEncryptorByLSBMethod
, เดชเตเดฐเดงเดพเดจ เดตเตเดฏเดคเตเดฏเดพเดธเด เดชเดพเดฒเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดจเตเดฆเตเดถ เดฌเตเดฑเตเดฑเตเดเตพ เดเดดเตเดคเตเดเดฏเตเด เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเดฒเดพเดฃเต.
เดชเตเดฐเตเดเตเดฐเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดจเด
LBS เดฐเตเดคเดฟ
เดเดคเตเดชเตเดฒเตเดฐเต เดเดฟเดคเตเดฐเด เดเดฃเตเดเตเดจเตเดจเต เดชเดฑเดฏเดพเด:
เด เดเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ, เดชเดพเดฒเดฑเตเดฑเดฟเตฝ 256 เดจเดฟเดฑเดเตเดเตพ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (เดชเตเดฏเดฟเดจเตเดฑเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฒเต). เดเดฆเตเดฏเดคเตเดคเต เดจเดพเดฒเต เดจเดฟเดฑเดเตเดเตพ เดเดตเดฏเดพเดฃเต: เดตเตเดณเตเดณ, เดเดฑเตเดชเตเดชเต, เดเตเดตเดชเตเดชเต, เดชเดเตเด. เดฎเดฑเตเดฑเต เดจเดฟเดฑเดเตเดเตพ เดเดฑเตเดชเตเดชเดพเดฃเต. เดเดเตเดณ เดชเดพเดฒเดฑเตเดฑเต เดฌเดฟเดฑเตเดฑเต เดธเตเดเตเดตเตปเดธเต เดเดชเตเดฐเดเดพเดฐเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด:
11111111 11111111 11111111 00000000 00000000 00000000 11111111 00000000 00000000 00000000 11111111 00000000เดชเดเตเดเต โฌ |
เดธเดจเตเดฆเตเดถเด เดเตพเดเตเดเตเตผเดคเตเดคเตเดเดดเดฟเดเตเดเดพเตฝ, เด
เดเดฟเดตเดฐเดฏเดฟเดเตเด เดฌเดฟเดฑเตเดฑเตเดเตพ เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฌเดฟเดฑเตเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเด. เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดเดพเดเตเดจเตเดจ เดเดฟเดคเตเดฐเด เดเดฑเดฟเดเดฟเดจเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดคเดพเดฃเตเดเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดฒเตเดฒ.
เดฏเดฅเดพเตผเดคเตเดฅ
เดเตพเดเตเดเตเตผเดคเตเดค เดธเดจเตเดฆเตเดถเดฎเตเดณเตเดณ เดเดฟเดคเตเดฐเด
เดชเดพเดฒเดฑเตเดฑเต เดตเดฟเดชเตเดฒเตเดเดฐเดฃ เดฐเตเดคเดฟ
เด เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เด เดเดเตเดเดฟเดฏ เดเดฐเต เดเดฟเดคเตเดฐเด เดจเดฟเดเตเดเตพ เดคเตเดฑเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดฟเดคเตเดฐเด เดเดพเดฃเตเด:
เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดพเดฐเดตเตเดคเตเดคเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพเดเตเดเต เด เดฐเตเดคเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒเตเดจเตเดจเต เดตเตเดฏเดเตเดคเดฎเดพเดฃเต, เดเตเดเดพเดคเต เดธเดจเตเดฆเตเดถเดคเตเดคเดฟเดจเตเดฑเต เด
เดงเดฟเด เดเตปเดเตเดฐเดฟเดชเตเดทเตป เดเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดจเตเดจเตเดเตเดเดพเด.
เดธเดพเดงเดพเดฐเดฃ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเดฟเดคเตเดฐเดเตเดเดณเดฟเดฒเตเดจเตเดจเดชเตเดฒเต เดเดจเดฟเดฎเตเดฑเตเดฑเดกเต เดเดฟเดคเตเดฐเดเตเดเดณเดฟเดฒเต เดเตปเดเตเดฐเดฟเดชเตเดทเตป/เดกเตเดเตเดฐเดฟเดชเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดเดจเดฟเดฎเตเดทเตป เดคเดเตผเดจเตเดจเดฟเดเตเดเดฟเดฒเตเดฒ.
เดเดชเดฏเตเดเดฟเดเตเด เดเดฑเดตเดฟเดเดเตเดเตพ:
http://ru.wikipedia.org/wiki/Gif http://ru.wikipedia.org/wiki/ะกัะตะณะฐะฝะพะณัะฐัะธั http://home.onego.ru/~chiezo/gif.htm
เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเตเด:
เด เดตเดฒเดเดฌเด: www.habr.com