Zurück zum Ranking

DimitarPetrov/stegify

Go

🔍 Go tool for LSB steganography, capable of hiding any file within an image.

golangsteganographysteganography-librarycligolang-toolsencodingencoding-librarydecodingjpegpnghiding-in-pnghiding-information
Sterne-Wachstum
Sterne
1.3k
Forks
120
Wochenwachstum
Issues
2
5001k
Jan. 2023März 2024Mai 2025Juli 2026
ArtefakteGo Modulesgo get github.com/DimitarPetrov/stegify
README

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 install github.com/DimitarPetrov/stegify@latest

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.

Ähnliche Repositories
practical-tutorials/project-based-learning

Curated list of project-based tutorials

PythonPyPIMIT Licensetutorialproject
274.6k35.4k
avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

GoGo ModulesMIT Licensegolanggolang-library
awesome-go.com
178.8k13.4k
ollama/ollama

Get up and running with Kimi-K2.6, GLM-5.2, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.

GoGo ModulesMIT Licensellamallm
ollama.com
176.6k17.1k
golang/go

The Go programming language

GoGo ModulesBSD 3-Clause "New" or "Revised" Licenseprogramming-languagelanguage
go.dev
135.3k19.3k
caddyserver/caddy

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

GoGo ModulesApache License 2.0goweb-server
caddyserver.com
74.2k4.8k
unionlabs/union

The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance.

Rustcrates.ioApache License 2.0blockchaincosmos
union.build
73.9k3.9k
moby/moby

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

GoGo ModulesApache License 2.0dockercontainers
mobyproject.org
71.9k19k
nektos/act

Run your GitHub Actions locally 🚀

GoGo ModulesMIT Licensegithub-actionsgolang
nektosact.com
71.2k2k
traefik/traefik

The Cloud Native Application Proxy

GoGo ModulesMIT Licensemicroservicedocker
traefik.io
64.1k6.1k
santifer/career-ops

Open-source AI job search: scan job portals, evaluate listings with a structured A-F rubric into a 1.0-5.0 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

JavaScriptnpmMIT Licenseai-agentanthropic
career-ops.org
60.9k12k
pocketbase/pocketbase

Open Source realtime backend in 1 file

GoGo ModulesMIT Licenseauthenticationbackend
pocketbase.io
60.1k3.6k
rclone/rclone

"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files

GoGo ModulesMIT Licensegolanggo
rclone.org
58.6k5.2k