Je crois que ce que vous cherchez, c'est de la stéganographie , un moyen de cacher un message dans un contenu par ailleurs innocent.
Il ne semble pas y avoir une multitude d'outils pour cela sur Linux, mais outguess 1 et steghide 2 feraient ce que vous voulez. openstego en est un autre (avec une interface de ligne de commande).
Exemple avec outguess
, j'ai copié / collé le texte de votre question dans 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
Image source (de Tux.svg ):
Image avec votre question cachée à l'intérieur:
Les images sont différentes si vous regardez de près, mais c'est à peu près comme si la seconde avait été générée avec un niveau de compression JPEG plus élevé. Le fait que le texte complet de votre question soit mélangé (et protégé par mot de passe) n'est pas visible du tout visuellement.
Plus le message caché est petit, moins les images seront visuellement différentes. (Je ne peux pas distinguer visuellement l'original d'un fichier avec "Copyright YOU 2012" intégré.)
1 vieux, mais construit très bien.
2 ne se construit pas avec un compilateur C ++ moderne, quelques corrections de source sont nécessaires.