Choisir une image ou un fichier audio de couverture
Chargez, déposez ou collez l’image, le WAV ou le MP3 qui portera les données. Les grands fichiers en contiennent davantage, et les photos détaillées ou la musique masquent mieux les modifications.
Un portage de steghide 0.5.1 pour le navigateur couvrant ses deux méthodes : pixels/LSB pour BMP et PNG, coefficients DCT pour JPEG, ainsi que les supports audio WAV PCM et MP3. Cachez un fichier ou un message, puis révélez-le avec la phrase secrète.
Votre fichier et votre secret ne quittent jamais cet appareil. Le décodage, l’insertion, le chiffrement et l’extraction s’effectuent dans cet onglet. Rien n’est envoyé sur un serveur : il n’y a donc rien à divulguer.
Les grands conteneurs contiennent davantage : environ un octet pour huit pixels dans une image, un octet pour seize échantillons dans un WAV PCM et l’espace inutilisé des trames audio dans un MP3.
steghide en ligne de commande — la sortie PNG conserve le même tableau de pixels bruts, mais l’outil steghide en ligne de commande ne lit pas le PNG.
Pour révéler le secret caché dans cette image, lancez le sort avec moi : tracez trois cercles complets autour de l’image avec votre pointeur, dans un sens ou dans l’autre — et les données cachées apparaîtront.
Votre tracé brille pendant le dessin et une lune s’allume à chaque cercle fermé. Relevez le pointeur ou quittez l’image et le sort s’efface. Sans pointeur ? Placez le focus sur l’image et appuyez sur Entrée.
Le nom, la taille du fichier récupéré et l’état de la somme de contrôle apparaissent ici. Les textes s’affichent en texte, les images en images, l’audio dispose d’un lecteur ; les autres fichiers peuvent uniquement être téléchargés.
Sans installation ni envoi : choisissez une image, un WAV ou un MP3, ajoutez votre secret et enregistrez le résultat.
Chargez, déposez ou collez l’image, le WAV ou le MP3 qui portera les données. Les grands fichiers en contiennent davantage, et les photos détaillées ou la musique masquent mieux les modifications.
Joignez un fichier ou saisissez un message, puis choisissez une phrase secrète. Elle détermine la répartition des données et peut également les chiffrer.
Enregistrez le résultat en BMP pour la compatibilité avec steghide, ou en PNG pour un fichier plus léger. Toute personne disposant de l’image et de la phrase secrète peut révéler les données.
ImageSteg est un portage TypeScript de steghide 0.5.1 couvrant ses deux branches : la méthode pixels/LSB pour BMP et PNG, et la méthode DCT pour JPEG. Il stocke aussi les données de la même manière dans l’audio WAV PCM et dans la fin inutilisée des trames MP3. Aucune méthode ne se contente de parcourir le fichier dans l’ordre.
Les échantillons sont regroupés en sommets et un appariement de poids minimal décide des modifications : environ un seul échantillon est modifié par valeur cachée.
Un codec entropique JPEG intégré lit les coefficients DCT quantifiés, cache les données dans leur parité et les réencode, à l’étape même où s’arrête la libjpeg de steghide. Les fichiers de base et progressifs sont tous deux pris en charge.
Une permutation initialisée par MD5 répartit les données sur toute l’image : le contenu caché n’est donc pas stocké dans un ordre prévisible.
zlib réduit les données avant leur insertion, et une somme de contrôle CRC32 facultative indique immédiatement si l’extraction est fiable.
Rijndael en mode CBC, avec la même dérivation de clé que libmcrypt, préserve la confidentialité des données même si quelqu’un soupçonne l’image.
Limites pratiques de la dissimulation de données dans les pixels d’une image.
Compatibilité : la disposition des bits, la permutation des échantillons et le chiffrement Rijndael/CBC suivent steghide 0.5.1 : les sorties BMP et JPEG peuvent donc être lues avec steghide extract -sf image.bmp -p passphrase ou -sf image.jpg, et les fichiers produits par l’outil steghide en ligne de commande peuvent être lus ici. Le format de sortie correspond toujours à la couverture : un JPEG produit un JPEG, car les données résident dans des coefficients que seul ce format peut porter. Le PNG est proposé avec le BMP pour les couvertures en pixels ; l’outil steghide en ligne de commande ne lit pas le PNG.
La prise en charge JPEG de steghide appelle la fonction libjpeg jpeg_read_coefficients(), qui arrête le décodage juste après le décodage Huffman, avant la déquantification et l’IDCT. Il reste les coefficients DCT quantifiés bruts. Les navigateurs ne proposent aucune API pour y accéder : cette page fournit donc son propre codec entropique JPEG au lieu du décodeur natif. Il couvre les fichiers de base et progressifs, y compris leurs passes d’affinage par approximations successives.
jpeg_write_coefficients() : une source arithmétique est donc réétiquetée comme JPEG de base ou progressif à la sortie.L’outil d’insertion ne voit aucun format de fichier : il travaille uniquement sur le tableau de pixels décodés. La méthode BMP/LSB de steghide s’applique donc au PNG sans modification. Quatre détails comptent en pratique :
Oui. Cacher et révéler des données est gratuit, sans inscription, filigrane ni limite artificielle de taille de fichier.
Non. Le décodage, l’insertion, la compression et le chiffrement s’exécutent localement dans votre navigateur avec JavaScript et WebCrypto. Rien n’est envoyé au serveur 73hi.
Toute image que votre navigateur peut décoder peut servir de couverture en pixels, tandis que les JPEG de base et progressifs utilisent la branche DCT de steghide. La sortie suit la couverture : JPEG en entrée, JPEG en sortie ; une couverture en pixels donne un BMP et une copie PNG. L’outil steghide en ligne de commande lit les sorties BMP et JPEG, mais pas PNG.
Dans les coefficients DCT quantifiés, exactement comme l’outil steghide en ligne de commande. La page comprend un codec entropique JPEG qui décode les passes jusqu’aux coefficients, modifie leur parité et les réencode.
Oui. Les fichiers progressifs sont décodés sur toute leur séquence de passes — sélection spectrale et affinage par approximations successives — puis réécrits de la même manière. Le résultat reste donc un JPEG progressif portant les coefficients d’origine.
Ils sont pris en charge en lecture. Les fichiers utilisant le codage QM (arithmétique binaire) au lieu de Huffman — SOF9 en séquentiel, SOF10 en progressif — sont décodés avec le même décodeur arithmétique que libjpeg : les coefficients obtenus sont donc identiques. Le résultat est réécrit avec le codage Huffman, comme le fait steghide.
Environ un octet de données pour huit pixels, moins la place de l’en-tête, du nom de fichier enregistré et de l’éventuel surcoût du chiffrement. L’outil affiche la capacité utile dès que vous choisissez une image.
Oui, si vous téléchargez le BMP. La disposition des bits, la permutation des échantillons fondée sur la phrase secrète et le chiffrement Rijndael/CBC suivent steghide 0.5.1.
Les données résident dans les valeurs individuelles des pixels. Une recompression, un redimensionnement, un filtrage ou une conversion vers un format avec perte comme JPEG les détruit. Conservez le BMP d’origine ou une copie PNG sans perte.
Pas en effectuant deux insertions dans le même fichier. Le second passage choisit ses propres positions aléatoires sur toute la couverture et écrase une partie des premières données. Comme les données sont compressées avant d’être chiffrées, quelques bits modifiés rendent tout le message illisible : la perte est totale, pas partielle. L’outil steghide d’origine se comporte de la même façon. Réutiliser la même phrase secrète n’aide pas : cela réécrit les mêmes positions depuis le début, et seul le dernier message subsiste. Pour créer de vraies couches, imbriquez plutôt les fichiers : cachez le premier secret dans une petite image, téléchargez le résultat, puis cachez ce fichier entier dans une image plus grande avec une seconde phrase secrète. Chaque couche reste intacte octet pour octet, car elle est transportée comme donnée protégée et non comme pixels modifiés.
Non. Charger un fichier ne fait que lire ses octets : les couvertures JPEG donnent directement accès aux coefficients DCT quantifiés, sans transformation inverse ni requantification, et les couvertures en pixels sont décodées sans perte. Les données cachées restent donc intactes. Un JPEG peut être enregistré avec une taille légèrement différente parce que le codage entropique est réécrit, sans affecter les données. Vous pouvez ouvrir sans risque un fichier préparé par quelqu’un d’autre pour révéler son contenu.
Oui. Intégrez votre mention de droits d’auteur ou une preuve de propriété directement dans la photo. Les données résident dans les pixels ou les coefficients JPEG et restent invisibles lors d’un affichage normal : vous pouvez partager l’image publiquement sans qu’elles soient remarquées. Si quelqu’un réutilise l’image sans autorisation, la marque cachée reste dans le fichier. Lorsque vous publiez la même image sur une plateforme tierce pour documenter l’infraction, cette copie porte également votre preuve, ce qui vous donne un élément solide à l’appui d’une demande de retrait ou d’une réclamation.
Bien sûr. Cachez un message comme « Je t’aime », ou tout ce qui est difficile à dire en face, dans une photo ordinaire de votre quotidien, et choisissez la date de naissance du destinataire comme phrase secrète. Envoyez-lui la photo et demandez-lui de l’ouvrir dans ImageSteg, ou de visiter 73hi.com/image-steg.html, pour la déverrouiller. Seule une personne connaissant la phrase secrète peut révéler les mots : vous pouvez ainsi vous exprimer sans la gêne de les prononcer à voix haute.