Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
jsteg — JPEG steganography | Kitploit
Tools/GitHubGitHub/lukechampine/jsteg
Encryption/Decryption ToolsSteganography
GitHublukechampine/jsteg

jsteg

JPEG steganography

View Repository
644383 years agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

jsteg

GoDoc Go Report Card

root@kitploit:~
go get lukechampine.com/jsteg

jsteg is a package for hiding data inside jpeg files, a technique known as steganography. This is accomplished by copying each bit of the data into the least-significant bits of the image. The amount of data that can be hidden depends on the filesize of the jpeg; it takes about 10-14 bytes of jpeg to store each byte of the hidden data.

Example

root@kitploit:~
// open an existing jpeg
f, _ := os.Open(filename)
img, _ := jpeg.Decode(f)

// add hidden data to it
out, _ := os.Create(outfilename)
data := []byte("my secret data")
jsteg.Hide(out, img, data, nil)

// read hidden data:
hidden, _ := jsteg.Reveal(out)

Note that the data is not demarcated in any way; the caller is responsible for determining which bytes of hidden it cares about. The easiest way to do this is to prepend the data with its length.

A jsteg command is included, providing a simple wrapper around the functions of this package. It can hide and reveal data in jpeg files and supports input/output redirection. It automatically handles length prefixes and uses a magic header to identify jpegs that were produced by jsteg.

A more narrowly-focused command named slink is also included. slink embeds a public key in a jpeg, and makes it easy to sign data and verify signatures using keypairs derived from password strings. See cmd/slink for a full description.

Binaries for both commands can be found here.


This package reuses a significant amount of code from the image/jpeg package. The BSD-style license that governs the use of that code can be found in the go_LICENSE file.

Download Tool