stegify
is a simple command line tool capable of fully transparent hiding any file within an image.
This technique is known as LSB (Least Significant Bit) steganography
Carrier | Data | Result |
---|---|---|
The Result
file contains the Data
file hidden in it. And as you can see it is fully transparent.
$ go get -u github.com/DimitarPetrov/stegify
$ stegify -op encode -carrier <file-name> -data <file-name> -result <file-name>
$ stegify -op decode -carrier <file-name> -result <file-name>
When encoding, the file with name given to flag -data
is hidden inside the file with name given to flag
-carrier
and the resulting file is saved in new file in the current working directory under the
name given to flag -result
. The file extension of result file is inherited from the carrier file and must not be specified
explicitly in the -result
flag.
When decoding, given a file name of a carrier file with previously encoded data in it, the data is extracted
and saved in new file in the current working directory under the name given to flag -result
.
The result file won't have any file extension and therefore it should be specified explicitly in -result
flag.
In both cases the flag -result
could be omitted and it will be used the default file name: result
stegify
can be used programmatically too and it provides easy to use functions working with file names
or raw Readers and Writers. You can visit godoc under
steg
package for details.
If carrier file is in jpeg or jpg format, after encoding the result file image will be png encoded (therefore it may be bigger in size) despite of file extension inherited from the original carrier file (which is .jpeg or .jpg).