Utilia

Cacher un message dans un texte

Cachez un message secret dans un texte ordinaire grâce aux caractères de largeur nulle, chiffré ou non par une phrase de passe, puis révélez-le ou supprimez-le.

C'est une astuce, pas une protection : beaucoup d'applications et de sites suppriment les caractères de largeur nulle, et une simple vérification suffit à les repérer. Utilisez la phrase de passe si le contenu est sensible.

Cacher un message

Avec une phrase de passe, le message est chiffré (AES-256-GCM) avant d'être caché. Sans elle, quiconque connaît la méthode peut le lire.

Révéler ou supprimer un message caché

Comment cacher un message

  1. Saisissez le Texte de couverture (ce que tout le monde voit) : une phrase ordinaire, qui s’affichera exactement de la même façon après l’opération.
  2. Saisissez le Message secret.
  3. Facultatif : indiquez une Phrase de passe. Le message est alors chiffré en AES-256-GCM avant d’être caché ; connaître la méthode ne suffit plus pour le lire.
  4. Choisissez l’Emplacement des caractères invisibles : Après le premier mot (par défaut), Répartis entre les mots, Tout au début ou Tout à la fin.
  5. Cliquez sur Cacher le message, puis copiez le Texte contenant le message caché avec le bouton de copie. Ouvrez Montrer où sont les caractères invisibles pour les voir sous forme de ◆.

Comment révéler ou supprimer un message caché

  1. Collez le texte dans Texte à analyser. Le nombre de caractères de largeur nulle s’affiche sous la zone.
  2. Cliquez sur Révéler le message. Si le message est chiffré, saisissez la Phrase de passe (si le message est chiffré) et cliquez de nouveau.
  3. Pour nettoyer un texte, cliquez sur Supprimer les caractères cachés : vous récupérez le même texte sans les données cachées. Les émojis comme 👨‍👩‍👧, qui utilisent légitimement des liaisons invisibles, restent intacts.

Tout se passe dans votre navigateur : ni le texte ni la phrase de passe ne sont envoyés où que ce soit.

Le principe

Unicode contient des caractères qui n’occupent aucune place à l’écran. Cet outil en utilise quatre comme chiffres : ESPACE SANS CHASSE (U+200B) = 00, ANTILIANT SANS CHASSE (U+200C) = 01, LIANT SANS CHASSE (U+200D) = 10 et GLUON DE MOTS (U+2060) = 11. Le message est converti en octets UTF-8 et chaque octet devient quatre caractères invisibles. Le bloc commence et se termine par une ESPACE INSÉCABLE SANS CHASSE (U+FEFF) et contient un octet d’en-tête qui indique si le contenu est du texte en clair ou chiffré.

La partie cachée grossit donc vite : un message de 20 lettres ajoute environ 90 caractères invisibles, et le chiffrement ajoute 49 octets d’en-tête et d’étiquette d’authentification (environ 200 caractères de plus). En UTF-8, chacun de ces caractères occupe 3 octets, ce qui compte dans les champs limités en octets. La Taille en UTF-8 indiquée dans les résultats donne le poids réel du texte complet.

Avec une phrase de passe, l’outil utilise le même format que l’outil de chiffrement de texte : PBKDF2-SHA-256 avec 600 000 itérations dérive la clé, AES-256-GCM chiffre, et une mauvaise phrase de passe ou un seul caractère modifié fait échouer le déchiffrement au lieu de produire un texte incohérent.

Limites : une astuce, pas une protection

  • Beaucoup de plateformes suppriment les caractères de largeur nulle. Certaines messageries, réseaux sociaux, champs de formulaire et traitements de texte les retirent ou les normalisent. Faites un essai avec la destination : collez-y le résultat, recopiez-le puis cliquez sur Révéler le message.
  • Une copie partielle casse le message. Si le lecteur ne copie qu’une partie du texte, le bloc est incomplet et l’outil le signale en général comme abîmé.
  • C’est facile à détecter. N’importe quel détecteur de caractères invisibles, un éditeur hexadécimal ou un simple comptage révèle leur présence. Impossible, avec cette méthode, de cacher l’existence d’un message à un observateur déterminé.
  • Sans phrase de passe, ce n’est que de l’obscurcissement. Toute personne qui connaît cette technique répandue peut le décoder. Utilisez une phrase de passe solide pour tout contenu sensible et transmettez-la par un autre canal.

Pour supprimer tous les types de caractères invisibles (espaces insécables, contrôles bidirectionnels, traits d’union conditionnels…), utilisez l’outil de suppression des caractères invisibles.

Questions fréquentes

Le message caché survit-il à un envoi par e-mail ou messagerie ?

Parfois. Les e-mails en texte brut et beaucoup de messageries conservent les caractères de largeur nulle, mais certains services les suppriment et certains claviers ou éditeurs les modifient. Faites toujours un essai aller-retour.

D'autres outils peuvent-ils lire les messages cachés ici ?

Seulement ceux qui utilisent le même codage. Il n’existe pas de norme pour la stéganographie par caractères de largeur nulle : les outils ne sont en général pas compatibles entre eux.

Répartir les caractères entre les mots est-il utile ?

Cela évite une longue suite de caractères invisibles au même endroit, ce qui résiste parfois mieux à certains éditeurs et attire moins l’attention dans un inspecteur de caractères. Pour un logiciel, le message n’est pas plus difficile à trouver.

Pourquoi l'outil trouve-t-il des caractères de largeur nulle mais aucun message ?

Le texte contient des caractères invisibles qui ne sont pas au format de cet outil : copiés depuis une page web, insérés par un éditeur ou filigrane d’un autre outil. L’outil de suppression des caractères invisibles peut les lister.

Que se passe-t-il si je cache un nouveau message dans un texte qui en contient déjà un ?

L’ancien bloc caché est d’abord retiré : le résultat ne contient que le nouveau message.