steganography alternatives and similar packages
Based on the "Images" category.
Alternatively, view steganography alternatives based on common mentions on social networks and blogs.
-
Primitive Pictures
Reproducing images with geometric primitives. -
imgproxy
Fast and secure standalone server for resizing and converting remote images -
imaginary
Fast, simple, scalable, Docker-ready HTTP microservice for high-level image processing -
pigo
Fast face detection, pupil/eyes localization and facial landmark points detection library in pure Go. -
bimg
Go package for fast high-level image processing powered by libvips C library -
gowitness
๐ gowitness - a golang, web screenshot utility using Chrome Headless -
smartcrop
smartcrop finds good image crops for arbitrary crop sizes -
go-opencv
Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv -
stegify
๐ Go tool for LSB steganography, capable of hiding any file within an image. -
geopattern
:triangular_ruler: Create beautiful generative image patterns from a string in golang. -
canvas
Cairo in Go: vector to raster, SVG, PDF, EPS, WASM, OpenGL, Gio, etc. -
govips
A lightning fast image processing and resizing library for Go -
draft
Generate High Level Cloud Architecture diagrams using YAML syntax. -
Angular 2 Image Gallery
Image Gallery built with Angular 15+, node.js and GraphicsMagick -
darkroom
An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. -
mergi
go library for image programming (merge, crop, resize, watermark, animate, ease, transit) -
fastimage
Finds the type and/or size of a remote image given its uri, by fetching as little as needed. -
LookUp
:mag: Pure Go implementation of fast image search and simple OCR, focused on reading info from screenshots -
webp-server
Simple and minimal image server capable of storing, resizing, converting and caching images. -
color-extractor
Simple image color extractor written in Go with no external dependencies -
goimghdr
The imghdr module determines the type of image contained in a file for go -
scout
Scout is a standalone open source software solution for DIY video security.
Access the most powerful time series database as a service
Do you think we are missing an alternative of steganography or a related project?
README
Steganography Lib
Steganography is a library written in Pure go to allow simple LSB steganography on images. It is capable of both encoding and decoding images. It can store files of any format. This library is inspired by Stego by EthanWelsh, a command line utility with the same purpose.
Installation
go get -u github.com/auyer/steganography
Demonstration
Original | Encoded |
---|---|
[Original File](examples/stegosaurus.png) | [Encoded File](examples/encoded_stegosaurus.png) |
The second image contains the first paragaph of the description of a stegosaurus on Wikipedia, also available in examples/message.txt as an example.
Getting Started
package main
import (
"bufio"
"image/png"
"io/ioutil"
"github.com/auyer/steganography"
)
Encode
Write mode is used to take a message and embed it into an image file using LSB steganography in order to produce a secret image file that will contain your message.
Note that the minnimum image size is 24 pixels for one byte. For each additional byte, it is necessary 3 more pixels.
inFile, _ := os.Open("input_file.png") // opening file
reader := bufio.NewReader(inFile) // buffer reader
img, _ := png.Decode(reader) // decoding to golang's image.Image
w := new(bytes.Buffer) // buffer that will recieve the results
err := steganography.Encode(w, img, []byte("message")) // Encode the message into the image
if err != nil {
log.Printf("Error Encoding file %v", err)
return
}
outFile, _ := os.Create("out_file.png") // create file
w.WriteTo(outFile) // write buffer to it
outFile.Close()
note: all error checks were removed for brevity, but they should be included.
Size of Message
Length mode can be used in order to preform a preliminary check on the carrier image in order to deduce how large of a file it can store.
sizeOfMessage := steganography.GetMessageSizeFromImage(img) // retrieves the size of the encoded message
Decode
Read mode is used to read an image that has been encoded using LSB steganography, and extract the hidden message from that image.
inFile, _ := os.Open(encodedInputFile) // opening file
defer inFile.Close()
reader := bufio.NewReader(inFile) // buffer reader
img, _ := png.Decode(reader) // decoding to golang's image.Image
sizeOfMessage := steganography.GetMessageSizeFromImage(img) // retrieving message size to decode in the next line
msg := steganography.Decode(sizeOfMessage, img) // decoding the message from the file
fmt.Println(string(msg))
note: all error checks were removed for brevity, but they should be included.
Complete Example
For a complete example, see the [examples/stego.go](examples/stego.go) file. It is a command line app based on the original fork of this repository, but modifid to use the Steganography library.
Attributions
- Stegosaurus Picture By Matt Martyniuk - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=42215661
*Note that all licence references and agreements mentioned in the steganography README section above
are relevant to that project's source code only.