Creo que lo que estás buscando es esteganografía , una forma de ocultar un mensaje en contenido de aspecto inocente.
No parece haber muchas herramientas disponibles para esto en Linux, pero el outguess 1 y steghide 2 harían lo que quisieras. openstego es otro (con una interfaz de línea de comandos).
Ejemplo con outguess
, copié / pegué el texto de su pregunta en 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
Imagen de origen (de Tux.svg ):
Imagen con su pregunta oculta en su interior:
Las imágenes son diferentes si se mira de cerca, pero es más o menos como si la segunda se hubiera generado con un nivel de compresión JPEG más alto. El hecho de que el texto completo de su pregunta esté mezclado (y protegido con contraseña) no se nota visualmente en absoluto.
Cuanto más pequeño sea el mensaje oculto, menos visualmente serán diferentes las imágenes. (No puedo distinguir visualmente entre el original y un archivo con "Copyright YOU 2012" incrustado).
1 viejo, pero se construye muy bien.
2 no se compila con un compilador C ++ moderno, son necesarias algunas reparaciones de origen.