A Python package for Sanskrit-based text steganography in images.
Project description
🔒 CipherVeil : Katapayadi System 🔒
Hide your secrets in plain sight using the wisdom of Sanskrit
📌 Overview
The CipherVeil : Katapayadi System is a sophisticated Python package that seamlessly hides messages within images using Sanskrit characters. It implements a novel encoding method inspired by the ancient Katapayadi system - a traditional Sanskrit numerical notation system dating back to ~700 CE. The system first converts English text into Sanskrit characters before embedding them in images using LSB (Least Significant Bit) steganography.
✨ Features
- 🔠 Text to Sanskrit Encoding – Transforms English messages into Sanskrit characters using the Katapayadi system
- 🖼️ Advanced Image Steganography – Embeds text within images using LSB encoding for undetectable message hiding
- 🔍 High Resilience – Maintains image quality while preserving message integrity
- 🖥️ Modern GUI – Features an intuitive PyQt6-based interface with dark mode
- 📜 Bidirectional Translation – Extracts hidden Sanskrit-encoded text and converts it back to English
- 🛡️ Enhanced Security – Adds an extra layer of security through Sanskrit encoding
- 🐍 Developer-Friendly API – Simple, well-documented API for both CLI and GUI applications
📥 Installation
From PyPI (Recommended)
pip install sanskrit-stegano
From Source (Development)
git clone https://github.com/YashAPro1/kat_cipher.git
cd kat_cipher
pip install -e .
Dependencies
The system requires the following packages:
pip install opencv-python numpy pyqt6
🚀 Usage
🛠️ Python API
from sanskrit_stegano import SanskritSteganoSystem
# Initialize the system
system = SanskritSteganoSystem()
# Define your inputs
message = "This message will be hidden using Sanskrit encoding"
image_path = "input.png" # Your cover image
output_path = "secret_output.png" # Where to save the steganographic image
# Encoding - Hide your message in an image
system.encode_message_to_image(message, image_path, output_path)
print("✅ Message successfully hidden inside image!")
# Decoding - Extract the hidden message from an image
decoded_message = system.decode_message_from_image(output_path)
print("🔓 Decoded Message:", decoded_message)
💻 Command Line Interface
# Encode a message
sanskrit-stegano encode --message "Your secret message" --input input.png --output hidden.png
# Decode a message
sanskrit-stegano decode --input hidden.png
🖥️ GUI Application
Launch the graphical interface with:
# If installed via pip
sanskrit-stegano-gui
# If running from source
python -m sanskrit_stegano.gui
🖼️ GUI Preview
The graphical user interface provides two main functions:
- Left Panel: Encode your secret message in an image
- Right Panel: Decode hidden messages from steganographic images
🧠 How It Works
-
Katapayadi Encoding: The system first converts your message into a series of Sanskrit characters using a modernized version of the ancient Katapayadi numerical encoding system.
-
Steganographic Embedding: The Sanskrit-encoded message is then hidden within the least significant bits of the image pixels, making the changes imperceptible to the human eye.
-
Extraction and Decoding: To recover the message, the system extracts the modified bits from the image and translates the Sanskrit characters back to the original text.
🔒 Security Considerations
While this system provides an excellent way to hide messages, please note:
- It's designed for educational purposes and light security needs
- For critical security applications, consider combining with encryption
- The strength lies in the dual-layer obscurity (steganography + Sanskrit encoding)
📋 Requirements
- Python 3.8+
- OpenCV
- NumPy
- PyQt6 (for GUI)
📚 Documentation
For detailed API documentation and examples, please visit our Documentation Page.
🛠️ Development Setup
For developers who want to contribute:
# Clone the repository
git clone https://github.com/YashAPro1/kat_cipher.git
# Setup development environment
cd kat_cipher
pip install -e ".[dev]"
# Run tests
pytest
🙌 Contributing
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows our coding standards and includes appropriate tests.
📜 License
This project is licensed under the MIT License - see the LICENSE file for details.
💡 Inspiration
This project draws inspiration from:
- The ancient Katapayadi system of Sanskrit numerical notation
- Modern steganography techniques
- The rich cryptographic heritage of ancient India
📧 Contact
For questions, support or collaboration:
- Developer: Yashkumar Dubey
- GitHub: https://github.com/YashAPro1/kat_cipher
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kat_cipher-1.0.1.tar.gz.
File metadata
- Download URL: kat_cipher-1.0.1.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd0b299a3739b6c91b6ce04a256689e963029b3e581a73560d084d9425454001
|
|
| MD5 |
2f060e1d5521aa373c55b1ac57f8cff7
|
|
| BLAKE2b-256 |
e3eff843fe7a56d5290b3c9bb7bda443ae78403f129f2da5f65264ba52c39d84
|
File details
Details for the file kat_cipher-1.0.1-py3-none-any.whl.
File metadata
- Download URL: kat_cipher-1.0.1-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c49658290b7c3a358fed0c011b716f9a46f36bce68d2a8bb02be46266626d305
|
|
| MD5 |
48286de7393ae4ef1e9d03bb6c97541d
|
|
| BLAKE2b-256 |
416fb07912d8e20a3443df75b86f47c8dbfe640258f90a342347141e8acb44f7
|