เจเจพเจฃ เจชเจเจพเจฃ
เจจเจฎเจธเจเจพเจฐเฅค
เจฌเจนเฉเจค เจธเจฎเจพเจ เจชเจนเจฟเจฒเจพเจ, เจเจฆเฉเจ เจฎเฉเจ เจฏเฉเจจเฉเจตเจฐเจธเจฟเจเฉ เจตเจฟเฉฑเจ เจชเฉเฉเจน เจฐเจฟเจนเจพ เจธเฉ, "เจเจพเจฃเจเจพเจฐเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจฆเฉ เจธเจพเจซเจเจตเฉเจ
เจฐ เจขเฉฐเจ" เจ
เจจเฉเจธเจผเจพเจธเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจฐเจธเจตเจฐเจ เจธเฉเฅค เจ
เจธเจพเจเจจเจฎเฉเจเจ เจฒเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจธเฉ เจเฉ GIF เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจจเฉเจนเจพ เจเจฎเจฌเฉเจก เจเจฐเจฆเจพ เจนเฉเฅค เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเจพเจตเจพ เจตเจฟเฉฑเจ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ.
เจเจธ เจฒเฉเจ เจตเจฟเจ เจฎเฉเจ เจเฉเจ เจธเจฟเจงเจพเจเจคเจ เจจเฉเจเจคเจฟเจเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเจพ, เจจเจพเจฒ เจนเฉ เจเจน เจเฉเจเจพ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจธเฉ.
เจธเจฟเจงเจพเจเจคเจ เจญเจพเจ
GIF เจซเจพเจฐเจฎเฉเจ
GIF (เจเฉเจฐเจพเจซเจฟเจเจธ เจเฉฐเจเจฐเจเฉเจเจ เจซเจพเจฐเจฎเฉเจ - เจเจฟเฉฑเจคเจฐเจพเจ เจฆเฉ เจเจฆเจพเจจ-เจชเฉเจฐเจฆเจพเจจ เจฒเจ เจเฉฑเจ เจซเจพเจฐเจฎเฉเจ) เจเฉเจฐเจพเจซเจฟเจ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจซเจพเจฐเจฎเฉเจ เจนเฉ, เจเฉ 256 เจฐเฉฐเจเจพเจ เจคเฉฑเจ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉเจฃเจตเฉฑเจคเจพ เจฆเฉ เจจเฉเจเจธเจพเจจ เจคเฉเจ เจฌเจฟเจจเจพเจ เจธเฉฐเจเฉเจเจฟเจค เจกเฉเจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจธเจฎเจฐเฉฑเจฅ เจนเฉเฅค เจเจน เจซเจพเจฐเจฎเฉเจ 1987 (GIF87a) เจตเจฟเฉฑเจ CompuServe เจฆเฉเจเจฐเจพ เจจเฉเฉฑเจเจตเจฐเจเจพเจ เจเฉฑเจคเฉ เจฐเจพเจธเจเจฐ เจเจฟเฉฑเจคเจฐเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเจฐเจจ เจฒเจ เจตเจฟเจเจธเจค เจเฉเจคเจพ เจเจฟเจ เจธเฉเฅค 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 (เจเฉฑเจ เจคเฉเจ เจเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจฌเจฟเฉฑเจ) เจตเจฟเจงเฉ
- เจชเฉเจฒเฉเจ เจเฉเฉเจจ เจฆเจพ เจคเจฐเฉเจเจพ
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