Steganography tool to hide encrypted secrets in PNG files
Project description
🛡️ NanoVault
NanoVault est un outil de stéganographie binaire conçu pour dissimuler des messages chiffrés à l'intérieur d'images PNG. Basé sur les fonctionnalités de Python 3.8+, il se distingue par sa philosophie "Zero-Dependency" : tout le code repose exclusivement sur la bibliothèque standard.
✨ Points Forts
- 🔒 Chiffrement Robuste : Utilise
PBKDF2-HMAC-SHA256avec $100,000$ itérations pour transformer votre mot de passe en clé sécurisée. - 🧊 Zéro Dépendance : Aucun
pip installrequis pour le cœur du logiciel. Uniquementhashlib,secrets, etargparse. - 👻 Totalement Invisible : Les données sont injectées après le chunk
IEND. L'image reste parfaitement lisible par toutes les visionneuses. - 🛡️ Protection par Sel (Salt) : Chaque fichier possède son propre sel de 16 octets généré de manière cryptographique via
secrets.token_bytes().
🚀 Installation
Pour installer NanoVault et l'utiliser comme une commande globale :
- Cloner le dépôt :
git clone [https://github.com/Loup0007A/Nanovault.git](https://github.com/Loup0007A/Nanovault.git) cd NanoVault
- Installer le package :
pip install .
🛠️ Utilisation (CLI)
Une fois installé, utilisez la commande nanovault directement :
📥 Cacher un secret
bash nanovault hide "image.png" "Message secret" "output.png" --password "MonPass"
📤 Extraire un secret
bash nanovault extract "output.png" --password "MonPass"
🧠 Fonctionnement Technique
NanoVault manipule directement les octets du fichier PNG :
-
Dérivation de Clé Nous utilisons la fonction de dérivation de clé pour ralentir les attaques par force brute : $$Key = PBKDF2(HMAC, Password, Salt, 100,000, SHA256)$$
-
Injection Binaire Le script scanne le fichier pour trouver le marqueur de fin officiel du PNG : \x49\x45\x4e\x44\xae\x42\x60\x82. Le payload est construit comme suit : [IMAGE_ORIGINALE] + [START_SECRET] + [SALT] + [SALT_TAG] + [ENCRYPTED_DATA] + [END_SECRET]
📦 Intégration API
Vous pouvez importer NanoVault dans vos projets :
```python
from nanovault import hide_data, extract_file
# Cacher
hide_data("photo.png", "Secret", "resultat.png", "password")
# Extraire
msg = extract_file("password", "resultat.png")
print(msg)
```
📜 Licence
Distribué sous la licence MIT. Voir le fichier LICENSE pour plus de détails.
Développé avec passion pour la cybersécurité en Pure Python.
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 nanovault-1.0.0.tar.gz.
File metadata
- Download URL: nanovault-1.0.0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df68d248ca17c1eb4788b77276391bf6ae67fafea761e2d600c961ff741951e7
|
|
| MD5 |
1131057c806a1e9d67fdf0fea5b52b85
|
|
| BLAKE2b-256 |
df72a40943c81756175add74353c0d6fbe3b614d21158bf4854b134ecd6bf31c
|
File details
Details for the file nanovault-1.0.0-py3-none-any.whl.
File metadata
- Download URL: nanovault-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5884104f5d45271517c196f2b8df90635ec801cd3fc024f8a6af0bb115d37f44
|
|
| MD5 |
3a25ad7ec33853ab6083b476be68a88d
|
|
| BLAKE2b-256 |
bc3b5f842b7749337239022919e0721ce4e8a93584295f61041501facb2ad6ad
|