ImageSteg · Oculta datos en imágenes o audio

Adaptación de steghide 0.5.1 para el navegador: píxeles/LSB en BMP y PNG, coeficientes DCT en JPEG, más audio WAV PCM y MP3. Oculta un archivo o mensaje y recupéralo con contraseña.

100 % local

Tu archivo y tu secreto nunca salen del dispositivo. La decodificación, inserción, cifrado y extracción ocurren en esta pestaña. Nada se sube a un servidor.

1 · Imagen o audio portador

Arrastra una imagen o un archivo de audio JPEG, PNG, WebP, GIF, BMP, WAV PCM o MP3 · decodificación local, sin subidas

Los contenedores mayores admiten más: aproximadamente un byte por ocho píxeles, un byte por dieciséis muestras WAV PCM y el espacio libre de las tramas MP3.

2 · Datos que ocultar

Ningún archivo seleccionado

3 · Contraseña & opciones

Tres pasos sencillos

Cómo ocultar archivos en una imagen o audio

Sin instalación ni subidas: elige una imagen, WAV o MP3, añade el secreto y guarda el resultado.

1

Elige una imagen o audio portador

Selecciona, arrastra o pega el portador. Los archivos mayores admiten más y las fotos detalladas o música disimulan mejor los cambios.

2

Añade el secreto y una contraseña

Adjunta un archivo o escribe un mensaje y elige una contraseña. Determina dónde se distribuyen los datos y puede cifrarlos.

3

Descarga y comparte

Guarda BMP para compatibilidad con steghide o PNG para menor tamaño. Quien tenga la imagen y la contraseña podrá revelar los datos.

Algoritmos de steghide y portadores de audio en tu navegador

Emparejamiento de grafos en píxeles, coeficientes DCT y muestras de audio

ImageSteg adapta steghide 0.5.1 a TypeScript: píxeles/LSB para BMP y PNG y DCT para JPEG. También oculta datos en WAV PCM y al final de tramas MP3. Ningún método recorre el archivo simplemente en orden.

Inserción basada en grafos

Las muestras forman vértices y un emparejamiento de peso mínimo decide qué modificar; solo se altera aproximadamente una muestra por valor oculto.

Esteganografía JPEG DCT real

Un códec de entropía JPEG lee coeficientes DCT cuantizados, oculta datos en su paridad y los recodifica, en el mismo punto donde se detiene libjpeg en steghide. Admite JPEG secuencial y progresivo.

Distribución mediante contraseña

Una permutación inicializada con MD5 dispersa los datos por toda la imagen, evitando un orden predecible.

Compresión y suma de comprobación

zlib comprime antes de insertar y una suma CRC32 opcional permite comprobar la extracción.

Cifrado AES-256 opcional

Rijndael en modo CBC con la derivación de claves de libmcrypt mantiene la confidencialidad aunque alguien sospeche de la imagen.

Qué esperar

Capacidad, velocidad y compatibilidad

Límites prácticos de ocultar datos en los píxeles de una imagen.

BMP · PNGmétodo de píxeles / LSB
JPEGmétodo de coeficientes DCT
0.2 %proporción habitual de muestras modificadas
0 subidastodo permanece en tu navegador

Compatibilidad: el diseño de bits, la permutación de muestras y Rijndael/CBC siguen steghide 0.5.1; los BMP y JPEG pueden leerse con steghide extract -sf image.bmp -p passphrase o -sf image.jpgy aquí pueden leerse los archivos creados con steghide. La salida corresponde al portador: JPEG produce JPEG porque sus coeficientes solo existen en ese formato. Para píxeles se ofrecen BMP y PNG; la CLI de steghide no lee PNG.

El método JPEG en detalle

La compatibilidad JPEG de steghide llama a jpeg_read_coefficients()de libjpeg, que detiene la decodificación tras Huffman, antes de la descuantización e IDCT, conservando los coeficientes DCT cuantizados. Los navegadores no ofrecen esa API, así que se incluye un códec propio para archivos secuenciales y progresivos, incluidas sus pasadas de refinamiento.

El mismo algoritmo aplicado a PNG

El algoritmo trabaja con píxeles decodificados, no con formatos; el método BMP/LSB se aplica a PNG sin cambios. Cuatro detalles prácticos:

Preguntas y respuestas

Preguntas frecuentes sobre ImageSteg

¿ImageSteg es gratuito?

Sí. Ocultar y revelar datos es gratis, sin registro, marcas de agua ni límites artificiales de tamaño.

¿Se suben mi imagen o archivo secreto?

No. JavaScript y WebCrypto decodifican, insertan, comprimen y cifran localmente. Nada llega a 73hi.

¿Qué formatos de imagen admite?

Cualquier imagen que el navegador decodifique sirve como portador de píxeles. JPEG secuencial o progresivo usa DCT y produce JPEG. Los demás producen BMP y PNG. La CLI de steghide lee BMP y JPEG, pero no PNG.

¿Cómo oculta datos el modo JPEG?

En coeficientes DCT cuantizados, igual que steghide. El códec JPEG lee hasta los coeficientes, modifica su paridad y los recodifica.

¿Puedo usar JPEG progresivo?

Sí. Se decodifican todas las pasadas de selección espectral y refinamiento y se escriben igual; el resultado sigue siendo progresivo con los coeficientes originales.

¿Y los JPEG de codificación aritmética?

Se admiten para lectura. QM binario (SOF9 secuencial, SOF10 progresivo) usa el mismo decodificador de libjpeg, conservando los coeficientes. La salida usa Huffman, como steghide.

¿Cuántos datos puedo ocultar?

Aproximadamente un byte por ocho píxeles, menos cabecera, nombre y sobrecarga de cifrado. La capacidad útil aparece al elegir la imagen.

¿Puede steghide de línea de comandos leer el resultado?

Sí, si descargas BMP. La distribución de bits, la permutación por contraseña y Rijndael/CBC siguen steghide 0.5.1.

¿Por qué falla la extracción después de editar la imagen?

Los datos están en valores de píxeles concretos. Recomprimir, redimensionar, filtrar o convertir a formatos con pérdida como JPEG los destruye. Conserva el BMP original o un PNG sin pérdida.

¿Puedo ocultar dos secretos en una imagen?

No mediante dos inserciones: la segunda sobrescribe parte de la primera y pocos bits alterados inutilizan todo el mensaje comprimido y cifrado. Usar la misma contraseña también reemplaza el anterior. Para crear capas, oculta el primer secreto en una imagen pequeña, descárgala y oculta ese archivo completo en otra mayor con otra contraseña. Cada capa conserva sus bytes como datos protegidos.

¿Abrir una imagen con datos ocultos los destruye?

No. Cargar solo lee los bytes: JPEG usa directamente los coeficientes DCT sin recuantizar y los píxeles se decodifican sin pérdida. Reescribir la codificación de entropía puede cambiar el tamaño JPEG, pero no los datos ocultos. Puedes abrir y revelar archivos de otras personas.

¿Puede ImageSteg proteger mis derechos de autor?

Sí. Inserta tu aviso de derechos de autor o prueba de propiedad directamente en la foto. Los datos permanecen invisibles en los píxeles o coeficientes JPEG durante la visualización normal, por lo que puedes compartirla públicamente. Si alguien la reutiliza sin permiso, la marca sigue en el archivo; al publicar esa misma imagen en una plataforma externa para documentar la infracción, la copia también lleva tu prueba para respaldar una retirada o reclamación.

¿Puedo ocultar un mensaje que me da vergüenza decir?

Sí. Oculta «Te quiero» u otro mensaje en una foto cotidiana y usa como contraseña el cumpleaños del destinatario. Envíale la foto e invítalo a abrirla en ImageSteg (73hi.com/image-steg.html). Quien conozca la contraseña podrá revelar el mensaje.