Chargez une image pour voir sa capacité.
Ce que ça fait
L’outil de stéganographie d’images cache un message secret à l’intérieur d’une image PNG ordinaire - et sait aussi l’en extraire. Il utilise l’encodage par bit de poids faible (LSB) : les canaux rouge, vert et bleu de chaque pixel gardent leurs valeurs, sauf le dernier bit, qui stocke un bit de votre message. Une image de 1000 × 1000 peut transporter environ 375 Ko de cette façon tout en restant identique au pixel près à l’original, car un changement de ±1 dans la valeur d’un canal est invisible à l’œil.
Optionnellement, le message est d’abord chiffré avec AES-256-GCM (clé dérivée du mot de passe via PBKDF2, 100 000 itérations), si bien que même quelqu’un qui sait que l’image transporte des données ne peut pas la lire sans le mot de passe. L’outil fonctionne à 100 % côté client : votre image, votre message et votre mot de passe ne quittent jamais le navigateur.
Comment l’utiliser
- Choisissez un mode avec la bascule Cacher / Extraire (en haut à gauche).
- Cacher : glissez-déposez (ou cliquez pour choisir) un PNG porteur. L’outil affiche sa taille et sa capacité - « cette image peut contenir jusqu’à N caractères ».
- Tapez votre message secret et, éventuellement, un mot de passe (AES-256-GCM). La ligne de capacité suit le nombre d’octets utilisés.
- Pressez Cacher le message dans l’image. Le PNG stego se télécharge automatiquement, avec une comparaison avant/après montrant que les deux sont visuellement identiques.
- Extraire : changez de mode, déposez le PNG stego, saisissez le mot de passe s’il y en avait un, pressez Extraire le message caché. Le message apparaît avec un bouton Copier.
Exemples
Cacher un message
Porteur : photo.png (800 × 600) · message : Meet me at the airlock at 21:00 · sans mot de passe
Capacity: 179,996 characters → downloads photo-stego.png
Pixels changed: 244 of 1.44M channels, each by exactly 1
Cacher le même message avec un mot de passe
Message : Meet me at the airlock at 21:00 · mot de passe : reactor-key
Extract without a password →
"This image contains an encrypted message - a password is required"
Extract with reactor-key → "Meet me at the airlock at 21:00"
Extract with wrong-key →
"Decryption failed - wrong password or corrupted data"
Extraire d’une image propre
Déposez un PNG qui ne transporte aucune donnée cachée :
"No hidden message found in this image"
Bon à savoir
- Pourquoi PNG : la stéganographie exige un format sans perte. Le PNG stocke les valeurs exactes des pixels, donc les LSB survivent à l’enregistrement, à la copie et au re-téléversement. Le JPEG est avec pertes - sa recompression réécrit les données des pixels et détruit le message caché. Partagez toujours l’image stego en PNG.
- Capacité : floor(largeur × hauteur × 3 / 8) octets, moins un en-tête de 4 octets (et 44 octets de sel + IV + tag GCM quand vous utilisez un mot de passe). Les photos et les images bruitées cachent les données de façon plus convaincante que les graphismes plats, où le bruit LSB peut être détecté statistiquement.
- Le chiffrement est authentifié : AES-GCM détecte un mot de passe erroné et des pixels altérés au lieu de renvoyer des données illisibles.
- Pas un substitut au chiffrement seul : la stéganographie LSB cache l’existence d’un message ; l’analyse statistique peut quand même signaler des images suspectes. Pour une forte confidentialité, utilisez un mot de passe - alors même une charge utile découverte reste illisible.
- Privé : fonctionne à 100 % côté client - sûr pour les secrets.
- Outils liés : Text Encryptor (chiffrement de message simple), File Encryptor (AES-256-GCM sur fichier entier), EXIF Stripper.