https://github.com/dnakov/stego
https://github.com/dnakov/stego
Last synced: 11 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dnakov/stego
- Owner: dnakov
- License: mit
- Created: 2025-03-14T18:11:23.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-14T19:47:54.000Z (over 1 year ago)
- Last Synced: 2025-08-11T17:56:37.762Z (11 months ago)
- Language: C
- Size: 15.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stego
A steganography tool that hides data in PNG images using LSB (Least Significant Bit) technique.
## Features
- Hide files or text in PNG images
- Extract hidden data from images
- Extract from PNG URLs
- Data compression
- Optional ChaCha20-Poly1305 encryption
- Uses 2 LSBs per channel
- Automatic image sizing
## Building
```bash
make
```
Requires:
- libcurl (for URLs)
- zlib
- gcc/clang
On macOS:
```bash
brew install curl
```
## Usage
Hide a file:
```bash
stego hide input.txt output.png [-p password]
```
Hide text directly:
```bash
stego hide -t "Hello World" output.png [-p password]
```
Extract from file:
```bash
stego extract input.png output.txt [-p password]
```
Extract from URL:
```bash
stego -u https://example.com/secret.png -o output.txt [-p password]
```
## How it Works
Basic steganography implementation:
- Uses 2 LSBs from each RGB channel
- Requires 2 pixels per byte of data
- Compresses data before embedding
- Optional ChaCha20-Poly1305 encryption
- Creates or reuses PNG images as needed
### Storage
Storage characteristics:
- Compression typically reduces input size
- Uses 2 bits per color channel
- Requires 2 pixels per byte
- Image size scales with data size
## License
MIT License - see LICENSE file for details