Skip to content

matutetandil/anyhide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Anyhide - Hide Anything in Anything

Crates.io License: MIT Rust GitHub Release

Hide anything inside anything. Anyhide is an advanced steganography and encryption tool that conceals any data (text, files, binaries) within any carrier file(s) using hybrid encryption with forward secrecy and plausible deniability.

Why Anyhide?

Traditional Steganography Anyhide
Modifies the carrier file Never touches the carrier
Transmits the modified file Transmits only a short code
Carrier can be analyzed Carrier stays untouched
Hide text in images Hide anything in anything

How It Works

Both parties share a file (ANY file). The sender hides data by finding byte patterns in the carrier. Only an encrypted code is transmitted - the carrier is never sent.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  SENDER                         RECEIVER                    β”‚
β”‚                                                             β”‚
β”‚  carrier.mp4 ──┐                      β”Œβ”€β”€ carrier.mp4       β”‚
β”‚                β”‚                      β”‚   (same file)       β”‚
β”‚  secret.zip ───┼──► ANYHIDE CODE ─────┼──► secret.zip       β”‚
β”‚                β”‚   (only this         β”‚                     β”‚
β”‚  passphrase β”€β”€β”€β”˜    is sent)          └── passphrase        β”‚
β”‚                                                             β”‚
β”‚  The carrier is NEVER transmitted                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Key Features

  • Any carrier: text, images, audio, video, PDFs, executables, archives
  • Any payload: text messages, binary files, documents, archives
  • Dual-layer encryption: Symmetric (ChaCha20) + Asymmetric (X25519, or optional post-quantum hybrid X25519 + ML-KEM-768)
  • Post-quantum hybrid (opt-in via keygen --hybrid): protects against harvest-now-decrypt-later attacks with ML-KEM-768 layered on top of X25519
  • Forward secrecy ratchet: Key rotation per message
  • P2P Chat over Tor: Real-time encrypted chat via Tor hidden services (always post-quantum hybrid since v0.14)
  • Duress password: Two messages, two passphrases - reveal the decoy under coercion
  • Multi-carrier encoding: Multiple files as carrier, order is an additional secret
  • Message signing: Ed25519 signatures for sender authentication
  • Code splitting: Split codes for multi-channel delivery
  • QR code support: Share codes via QR
  • Plausible deniability: Wrong passphrase returns garbage, not an error
  • Never fails: Decoder always returns something - prevents brute-force detection

Installation

From crates.io:

cargo install anyhide

Pre-built binary: Download from GitHub Releases (Linux, macOS, Windows)

From source:

git clone https://github.com/matutetandil/anyhide.git && cd anyhide && cargo build --release

Quick Start

# Generate keys
anyhide keygen -o mykeys

# Encode a message
anyhide encode -c carrier.txt -m "secret" -p "pass123" --their-key recipient.pub

# Decode a message
anyhide decode --code "AwNhYm..." -c carrier.txt -p "pass123" --my-key recipient.key

Going Post-Quantum

For protection against future quantum computers (and against adversaries recording traffic today to decrypt it later), generate a hybrid keypair. The CLI auto-detects the key flavor from the PEM header β€” no special flags needed at encode / decode time.

# Generate a hybrid X25519 + ML-KEM-768 keypair
anyhide keygen --hybrid -o mykeys

# Encode and decode work the same β€” the wire format is selected automatically
anyhide encode -c carrier.txt -m "secret" -p "pass123" --their-key recipient.pub
anyhide decode --code "AHV7..." -c carrier.txt -p "pass123" --my-key recipient.key

Existing classical (v6) codes keep working byte-identically. Hybrid (v7) codes are larger (~1.1 KB extra per code) but remain confidential even if X25519 or ML-KEM is broken in the future. See Security Properties β†’ Post-Quantum Hybrid Encryption for the threat model and tradeoffs.

Documentation

Document Description
Command Reference All CLI commands and options
P2P Chat over Tor Encrypted chat setup, TUI, multi-contact dashboard
Forward Secrecy & Ratchet Key rotation, ephemeral keys, library usage
Security Properties Threat model, duress password, plausible deniability
Examples Practical usage examples
Architecture Internal design and development guide
Changelog Version history

Support

Anyhide is free and open source, built with passion. If you find it useful, consider buying me a coffee:

Buy Me a Coffee

Disclaimer

Anyhide is provided for educational and legitimate privacy purposes only. The authors do not endorse illegal activities, are not responsible for how this software is used, and provide it "as is" without warranty. You are solely responsible for ensuring your use complies with all applicable laws.

License

MIT License - see LICENSE for details.

Version

Current version: 0.16.0 (see CHANGELOG.md)

About

Hide any data in any file. Steganography tool that never modifies the carrier - transmits only encrypted positions. X25519 + ChaCha20 with forward secrecy.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages