Tôi tin rằng những gì bạn đang tìm kiếm là steganography , một cách để ẩn một thông điệp trong nội dung trông ngây thơ.
Dường như không có nhiều công cụ cho việc này trên Linux, nhưng việc bỏ qua 1 và steg leather 2 sẽ làm những gì bạn muốn. openstego là một cái khác (với giao diện dòng lệnh).
Ví dụ với outguess
, tôi sao chép / dán văn bản câu hỏi của bạn vào Q.txt
:
$ ../src/outguess/outguess -k 'Unix&Linux' -d Q.txt Tux.jpg Tux_steg.jpg
Reading Tux.jpg....
JPEG compression quality set to 75
Extracting usable bits: 10126 bits
Correctable message size: 5008 bits, 49.46%
Encoded 'Q.txt': 4592 bits, 574 bytes
Finding best embedding...
0: 2274(49.2%)[49.5%], bias 2008(0.88), saved: 2, total: 22.46%
3: 2269(49.1%)[49.4%], bias 2007(0.88), saved: 3, total: 22.41%
13: 2268(49.0%)[49.4%], bias 1977(0.87), saved: 3, total: 22.40%
62: 2237(48.4%)[48.7%], bias 1992(0.89), saved: 7, total: 22.09%
78: 2216(47.9%)[48.3%], bias 1964(0.89), saved: 10, total: 21.88%
78, 4180: Embedding data: 4592 in 10126
Bits embedded: 4624, changed: 2216(47.9%)[48.3%], bias: 1964, tot: 10119, skip: 5495
Foiling statistics: corrections: 1437, failed: 746, offset: 198.494881 +- 300.529142
Total bits changed: 4180 (change 2216 + bias 1964)
Storing bitmap into data...
Writing Tux_steg.jpg....
$ ../src/outguess/outguess -k 'Unix&Linux' -r Tux_steg.jpg out.txt
Reading Tux_steg.jpg....
Extracting usable bits: 10126 bits
Steg retrieve: seed: 78, len: 574
$ diff out.txt Q.txt
$ echo $?
0
Nguồn hình ảnh (từ Tux.svg ):
Hình ảnh với câu hỏi của bạn ẩn bên trong nó:
Các hình ảnh sẽ khác nhau nếu bạn nhìn kỹ, nhưng nó khá giống như thể thứ hai đã được tạo ra với mức độ nén JPEG cao hơn. Thực tế là toàn bộ văn bản câu hỏi của bạn được trộn lẫn (và được bảo vệ bằng mật khẩu) hoàn toàn không đáng chú ý.
Thông điệp ẩn càng nhỏ, hình ảnh sẽ càng ít khác biệt. (Tôi không thể phân biệt trực quan giữa bản gốc và tệp có nhúng "Bản quyền YOU 2012".)
1 cũ, nhưng xây dựng tốt.
2 không xây dựng với trình biên dịch C ++ hiện đại, một vài bản sửa lỗi nguồn là cần thiết.