Utilia

Ocultar un mensaje en un texto

Oculta un mensaje secreto dentro de un texto normal con caracteres invisibles de ancho cero, cifrado con contraseña si quieres, y revélalo o elimínalo.

Es un truco, no un sistema de seguridad: muchas apps y sitios eliminan los caracteres de ancho cero, y cualquiera puede detectarlos con una simple comprobación. Usa la frase de contraseña si el contenido es importante.

Ocultar un mensaje

Con una frase de contraseña, el mensaje se cifra (AES-256-GCM) antes de ocultarlo. Sin ella, cualquiera que conozca el método puede leerlo.

Revelar o eliminar un mensaje oculto

Cómo ocultar un mensaje

  1. Escribe el Texto de cobertura (lo que ve todo el mundo): una frase normal que se verá exactamente igual después.
  2. Escribe el Mensaje secreto.
  3. Si quieres, añade una Frase de contraseña (opcional). El mensaje se cifra entonces con AES-256-GCM antes de ocultarlo, de modo que conocer el método no basta para leerlo.
  4. Elige Dónde colocar los caracteres ocultos: Después de la primera palabra (por defecto), Repartidos entre las palabras, Justo al principio o Justo al final.
  5. Pulsa Ocultar mensaje y copia el Texto con el mensaje oculto con el botón Copiar. Abre Mostrar dónde están los caracteres ocultos para verlos como símbolos ◆.

Cómo revelar o eliminar un mensaje oculto

  1. Pega el texto en Texto que quieres comprobar. Debajo del cuadro aparece el número de caracteres de ancho cero.
  2. Pulsa Revelar mensaje. Si el mensaje está cifrado, escribe la Frase de contraseña (si el mensaje está cifrado) y vuelve a pulsar.
  3. Para limpiar un texto, pulsa Eliminar caracteres ocultos: obtienes el mismo texto sin los datos ocultos. Los emojis como 👨‍👩‍👧, que usan legítimamente uniones invisibles, se dejan intactos.

Todo ocurre en tu navegador; ni el texto ni la frase de contraseña se envían a ningún sitio.

Cómo funciona

Unicode contiene caracteres que no ocupan espacio en pantalla. Esta herramienta usa cuatro de ellos como dígitos: ZERO WIDTH SPACE (U+200B) = 00, ZERO WIDTH NON-JOINER (U+200C) = 01, ZERO WIDTH JOINER (U+200D) = 10 y WORD JOINER (U+2060) = 11. Tu mensaje se convierte en bytes UTF-8 y cada byte se transforma en cuatro caracteres invisibles. El bloque empieza y termina con un ZERO WIDTH NO-BREAK SPACE (U+FEFF) y lleva una cabecera de un byte que indica si el contenido es texto sin cifrar o cifrado.

Por eso la parte oculta crece deprisa: un mensaje de 20 letras añade unos 90 caracteres invisibles, y el cifrado añade 49 bytes de cabecera y etiqueta de autenticación (unos 200 caracteres más). En UTF-8, cada uno de estos caracteres ocupa 3 bytes, lo que importa en los campos con un límite en bytes. Tamaño en UTF-8, en los resultados, muestra el tamaño real del texto completo.

Con una frase de contraseña, la herramienta usa el mismo formato que la herramienta de cifrado de texto: PBKDF2-SHA-256 con 600 000 iteraciones deriva la clave, AES-256-GCM cifra, y una frase incorrecta o un solo carácter alterado hacen que el descifrado falle en lugar de devolver basura.

Límites: un truco, no seguridad

  • Muchas plataformas eliminan los caracteres de ancho cero. Algunas apps de mensajería, redes sociales, campos de formulario y procesadores de texto los quitan o los normalizan. Haz antes una prueba con el destino: pega allí el resultado, cópialo de vuelta y pulsa Revelar mensaje.
  • Las copias parciales rompen el mensaje. Si quien lo recibe copia solo una parte del texto, el bloque queda incompleto y la herramienta normalmente lo indica como dañado.
  • Es fácil de detectar. Cualquier detector de caracteres invisibles, un editor hexadecimal o un simple recuento revela que ahí hay algo. De esta forma no se puede ocultar la existencia de un mensaje a un observador decidido.
  • Sin frase de contraseña, solo es ofuscación. Cualquiera que conozca esta técnica tan extendida puede descodificarlo. Usa una frase de contraseña robusta para cualquier cosa delicada y compártela por otro canal.

Para eliminar cualquier tipo de carácter invisible (espacios de no separación, controles bidireccionales, guiones blandos y más), usa la herramienta Quitar caracteres invisibles.

Preguntas frecuentes

¿El mensaje oculto sobrevivirá a un correo electrónico o un chat?

A veces. El correo en texto plano y muchas apps de chat conservan los caracteres de ancho cero, pero algunos servicios los eliminan y algunos teclados o editores los cambian. Haz siempre una prueba de ida y vuelta.

¿Otras herramientas pueden leer los mensajes ocultos aquí?

Solo las que usen la misma codificación. No existe un estándar para la esteganografía con caracteres de ancho cero, así que las distintas herramientas no suelen ser compatibles entre sí.

¿Sirve de algo repartir los caracteres entre las palabras?

Evita que haya largas series de caracteres invisibles en un mismo punto, lo que puede resistir mejor a algunos editores y resulta menos sospechoso en un inspector de caracteres. No hace que el mensaje sea más difícil de encontrar para un programa.

¿Por qué la herramienta encuentra caracteres de ancho cero pero ningún mensaje?

El texto contiene caracteres invisibles que no se escribieron con el formato de esta herramienta: copiados de una página web, insertados por un editor o una marca de agua de otra herramienta. La herramienta Quitar caracteres invisibles puede listarlos.

¿Qué pasa si oculto un mensaje nuevo en un texto que ya tiene uno?

Primero se elimina el bloque oculto anterior, así que el resultado solo contiene el mensaje nuevo.