Skip to content

osmankaankars/Invisible-Ink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Invisible Ink 🕵️‍♂️

A secure steganography tool combining AES-based encryption with LSB (Least Significant Bit) image manipulation.

Python License Security


📖 Overview

Invisible Ink is a Python-based CLI tool designed to hide sensitive text messages inside PNG images.
Unlike traditional steganography tools that simply hide plain text, Invisible Ink focuses on security:

  1. Encrypt-then-Hide: The message is encrypted before being embedded.
  2. LSB Steganography: Encrypted bits are hidden in the least significant bits of the image pixels.
  3. Passphrase-Based Access: Hidden data can only be recovered with the correct password.

Use it for secure communication, watermarking, or learning the fundamentals of cybersecurity and image processing.


✨ Features

  • 🔒 Symmetric encryption (Fernet / AES-based)
  • 🖼️ LSB steganography on lossless PNG files
  • 🔑 Password-protected message extraction
  • 💻 Simple CLI interface
  • 📚 Great for cybersecurity learning

⚙️ Installation

Prerequisites

  • Python 3.8+
  • pip

Setup

  1. Clone the repository

    git clone https://github.com/osmankaankars/Invisible-Ink.git
    cd Invisible-Ink
  2. Create and activate a virtual environment

    python3 -m venv venv
    source venv/bin/activate      # Windows: venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt

🚀 Usage

1️⃣ Hide a Message (Encrypt & Embed)

python invisible_ink.py hide -i input.png -o output.png -m "This is a top secret message!"

You will be prompted for a password.
The tool will encrypt the message and embed it into the output image.


2️⃣ Reveal a Message (Extract & Decrypt)

python invisible_ink.py reveal -i output.png

Enter the same password used during encryption.
If correct, the decrypted message will be printed.


🔧 Command-Line Options

hide

  • -i, --input : Input PNG file
  • -o, --output: Output PNG file
  • -m, --message: Message to hide

reveal

  • -i, --input : Image containing hidden data

🛠️ Technical Details

Encryption

  • Uses Fernet (AES-128 + HMAC-SHA256)
  • Password → SHA-256 hash → URL-safe key

Image Processing

  • Based on Pillow (PIL)
  • Reads and modifies pixel arrays

Encoding Strategy

  • Converts encrypted payload to binary
  • Embeds bits into LSB of the Red channel of each pixel
  • Works only with lossless formats (PNG)

⚠️ Disclaimer

This tool is for educational, research, and ethical security use only.
The author is not responsible for misuse.


👨‍💻 Author

Osman Kaan Kars
Cybersecurity Engineer | SAP Security Specialist


About

A secure steganography tool combining AES-256 encryption with LSB image manipulation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages