All Projects β†’ DimitarPetrov β†’ Stegify

DimitarPetrov / Stegify

Licence: mit
πŸ” Go tool for LSB steganography, capable of hiding any file within an image.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Stegify

Stego
πŸ¦• stego is a steganographic swiss army knife.
Stars: ✭ 220 (-76.27%)
Mutual labels:  cli, encoding, decoding, steganography
Density Converter
A multi platform image density converting tool converting single or batches of images to Android, iOS, Windows or CSS specific formats and density versions given the source scale factor or width/height in dp. It has a graphical and command line interface and supports many image types (svg, psd, 9-patch, etc.) aswell as some lossless compressors like pngcrush.
Stars: ✭ 222 (-76.05%)
Mutual labels:  cli, png, jpeg
Svgexport
SVG to PNG/JPEG command-line tool and Node.js module
Stars: ✭ 731 (-21.14%)
Mutual labels:  cli, png, jpeg
Pixterm
Draw images in your ANSI terminal with true color
Stars: ✭ 782 (-15.64%)
Mutual labels:  cli, png, jpeg
Flac
Free Lossless Audio Codec
Stars: ✭ 593 (-36.03%)
Mutual labels:  encoding, decoding
Sdwebimage
Asynchronous image downloader with cache support as a UIImageView category
Stars: ✭ 23,928 (+2481.23%)
Mutual labels:  png, jpeg
Libvips
A fast image processing library with low memory needs.
Stars: ✭ 6,094 (+557.39%)
Mutual labels:  png, jpeg
Bbmetalimage
A high performance Swift library for GPU-accelerated image/video processing based on Metal.
Stars: ✭ 677 (-26.97%)
Mutual labels:  png, jpeg
Imgproxy
Fast and secure standalone server for resizing and converting remote images
Stars: ✭ 5,688 (+513.59%)
Mutual labels:  png, jpeg
Pbf
A low-level, lightweight protocol buffers implementation in JavaScript.
Stars: ✭ 618 (-33.33%)
Mutual labels:  encoding, decoding
Leanify
lightweight lossless file minifier/optimizer
Stars: ✭ 694 (-25.13%)
Mutual labels:  png, jpeg
Metadata Extractor Dotnet
Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Stars: ✭ 518 (-44.12%)
Mutual labels:  png, jpeg
Imagesharp
πŸ“· A modern, cross-platform, 2D Graphics library for .NET
Stars: ✭ 5,186 (+459.44%)
Mutual labels:  png, jpeg
Optimizt
CLI image optimization tool
Stars: ✭ 594 (-35.92%)
Mutual labels:  png, jpeg
Hashids.net
A small .NET package to generate YouTube-like hashes from one or many numbers. Use hashids when you do not want to expose your database ids to the user.
Stars: ✭ 470 (-49.3%)
Mutual labels:  encoding, decoding
Decodify
Detect and decode encoded strings, recursively.
Stars: ✭ 670 (-27.72%)
Mutual labels:  encoding, decoding
Scodec
Scala combinator library for working with binary data
Stars: ✭ 709 (-23.52%)
Mutual labels:  encoding, decoding
Flyimg
Dockerized PHP7 application runs as a Microservice to resize and crop images on the fly. Get optimised images with MozJPEG, WebP or PNG using ImageMagick. Includes face detection, cropping, face blurring, image rotation and many other options. Abstract storage based on FlySystem in order to store images on any provider (local, AWS S3...).
Stars: ✭ 762 (-17.8%)
Mutual labels:  png, jpeg
Jsteg
JPEG steganography
Stars: ✭ 448 (-51.67%)
Mutual labels:  jpeg, steganography
Go Geom
Package geom implements efficient geometry types for geospatial applications.
Stars: ✭ 456 (-50.81%)
Mutual labels:  encoding, decoding

stegify

Build Status Coverage Status GoDoc Go Report Card Mentioned in Awesome Go

Overview

stegify is a simple command line tool capable of fully transparent hiding any file within an image or set of images. This technique is known as LSB (Least Significant Bit) steganography

Demonstration

Carrier Data Result
Original File Data file Encoded File

The Result file contains the Data file hidden in it. And as you can see it is fully transparent.

If multiple Carrier files are provided, the Data file will be split in pieces and every piece is encoded in the respective carrier.

Carrier1 Carrier2 Data Result1 Result2

The Result1 file contains one half of the Data file hidden in it and Result2 the other. As always fully transparent.

Installation

Installing from Source

go get -u github.com/DimitarPetrov/stegify

Installing via Homebrew (macOS)

brew tap DimitarPetrov/stegify
brew install stegify

Or you can download a binary for your system here.

Usage

As a command line tool

Single carrier encoding/decoding

stegify encode --carrier <file-name> --data <file-name> --result <file-name>

stegify 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.

NOTE: The result file won't have any file extension and therefore it should be specified explicitly in --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.

NOTE: 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 default values will be used.

Multiple carriers encoding/decoding

stegify encode --carriers "<file-names...>" --data <file-name> --results "<file-names...>"
OR
stegify encode --carrier <file-name> --carrier <file-name> ... --data <file-name> --result <file-name> --result <file-name> ...

stegify decode --carriers "<file-names...>" --result <file-name>
OR
stegify decode --carrier <file-name> --carrier <file-name> ... --result <file-name>

When encoding a data file in more than one carriers, the data file is split in N chunks, where N is number of provided carriers. Each of the chunks is then encoded in the respective carrier.

NOTE: When decoding, carriers should be provided in the exact same order for result to be properly extracted.

This kind of encoding provides one more layer of security and more flexibility regarding size limitations.

In both cases the flag --result/--results could be omitted and default values will be used.

NOTE: When encoding the number of the result files (if provided) should be equal to the number of carrier files. When decoding, exactly one result is expected.

When multiple carriers are provided with mixed kinds of flags, the names provided through carrier flag are taken first and with carriers/c flags second. Same goes for the result/results flag.

Programmatically in your code

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.

Disclaimer

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 specified in the result flag.

Showcases

🚩 Codefest’19

stegify was used for one of the Capture The Flag challenges in Codefest’19.

Participants were given a photo of a bunch of "innocent" cats. Nothing suspicious right? Think again!

You can read more here and here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].