¿Cómo puedo escribir información dentro de un archivo de foto como jpg o gif sin destruir la imagen? y, por supuesto, sin mostrarlo en la foto, ya que la idea es enviar información en el archivo de la foto sin ser detectada por nadie (para proporcionar seguridad/privacidad en cierta medida).¿Cómo se puede ocultar la información dentro de una foto jpg o gif?
Respuesta
Puede almacenar cierta información en los metadatos de la imagen. De hecho, así es como las cámaras digitales de los hombres 'etiquetan' las fotos que hacen (modelo de cámara, fecha y hora, coordenadas GPS, etc.).
Este formato de datos se llama EXIF (formato de archivo de imagen intercambiable). Hay muchos ejemplos de cómo usarlo en lenguajes de programación. Here's el ejemplo en Java.
Si desea evitar que los usuarios lean estos datos, puede cifrarlos de alguna manera, pero siempre podrán eliminarlos de su imagen (abriendo en Photoshop y utilizando Guardar como, por ejemplo).
Entonces, "Guardar como" en PhotoShop eliminaría cualquier metadato? ¿Conoces un software que permita editarlo? –
Creo que Photoshop reescribirá esta información con sus propios datos. Creo que hay muchos editores EXIF, por ejemplo, encontré freeware Quick EXIF Editor http://www.photo-freeware.net/quick-exif-editor.php – RaYell
¡Genial! ¿Algo para Mac? –
Puede concatenar un archivo .gif y un archivo zip (la información que desea ocultar) en un archivo. Los archivos GIF se leen desde el inicio del archivo, mientras que las fotos se leen desde el final del archivo.
Para crear un archivo de este tipo en Linux:
$ cat file1.gif >> outfile.gif
$ cat file2.zip >> outfile.gif
El archivo resultante debe tener el tamaño de file1.gif y file2.zip juntos y debería ser capaz de abrirse por cualquier visor gif y manejador de archivo zip.
Probablemente la forma más fácil de ocultar información :) ¿Pero cómo lo recuperas? – Burkhard
como dije, puede abrir el archivo resultante (archivo de salida) con cualquier archivador estándar que pueda manejar archivos zip y extraer la información. – crazymaik
Ups. Solo leí la primera parte. Probaré la parte de la cremallera más tarde. – Burkhard
Estoy seguro de que hay muchas maneras. Aquí hay uno:
En una fotografía, las variaciones menores en el color a menudo serían imperceptibles a simple vista, o incluso si se nota, podrían confundirse fácilmente con defectos en la calidad de la imagen.
Por ejemplo, supongamos que tiene una imagen GIF en escala de grises donde la paleta está ordenada en orden de blanco a negro con un rango uniforme de grises en el medio. No estoy seguro de lo mucho que sabe sobre los formatos de archivos gráficos, pero en GIF tiene un byte por píxel, con cada posible asignación de valor de bytes a un color específico. Entonces, en este caso podríamos decir paleta # 0 = RGB (0,0,0), paleta # 1 = RGB (1,1,1), ... paleta # 255 = RGB (255,255,255).
Luego toma una fotografía normal y corriente. Divide tu mensaje secreto en bits individuales. Establezca el último bit de cada número de índice de paleta en sucesivos bits de su mensaje.
Por ejemplo, supongamos que los primeros ocho píxeles de la foto original son, por ejemplo, 01 00 C9 FF FF C8 42 43. Su mensaje comienza con la letra "C", código ascii 0110 0111. Por lo tanto, cambia el último bit del primer byte a 0, cambiando el byte de 01 a 00. Cambia el último bit del segundo byte a 1, cambiando el byte de 00 a 01. Cambia el último bit del tercer byte a 1. Ya es 1 , entonces eso no hace diferencia. Etc. Usted termina con los 8 bytes codificados como 00 01 C9 FE FF C9 43 43.
Los cambios en los colores serían tan sutiles que es poco probable que cualquiera que mire la imagen lo note. Incluso si lo hubieran notado, a menos que tuvieran una razón para sospechar, probablemente concluirían que la imagen no era perfecta.
Por supuesto, nada dice que debe usar 1 bit por byte para el mensaje secreto. Dependiendo de la degradación de la calidad que creas que puedes salirte con la tuya, puedes usar 2 bits por byte, o simplemente cambiar 1 bit en cada byte, etc.
Por supuesto, la misma técnica se puede utilizar con fotografías en color: cambiar el último bit en cada uno de los componentes RGB para codificar 3 bits por píxel, etc.
Si desea ocultar datos (texto, otra imagen , lo que sea) en un archivo jpeg, simplemente puede agregarlo al final del archivo. Cuando se ve la imagen, solo verá la imagen original y se ignorarán sus datos agregados.
Si bien no es una forma estupenda de ocultar datos, esta es una buena forma de ocultar otro jpeg, como si alguien abre el archivo en el bloc de notas o un editor hexadecimal, probablemente no notarán que hay dos jpegs y no uno porque el final de la segunda imagen se verá como el primero de todos modos.
Oye ese método se llama Steganography. Con eso podemos ocultar mensajes no solo en imágenes sino también en audio, vedeo y otros formatos.
Aquí hay un software de esteganografía opensouce llamado steganotool Este proyecto es una herramienta de esteganografía de código abierto que se puede utilizar para ocultar y extraer texto a/de imágenes de mapa de bits.
Acerca de esteganografía Medios
esteganografía en imágenes
Este tipo de esteganografía es muy eficaz contra el descubrimiento y puede servir para una variedad de propósitos. Estos propósitos pueden incluir la autenticación, el ocultamiento de mensajes y la transmisión de claves de cifrado. El método más efectivo para este tipo de esteganografía es normalmente el método de bit menos significativo. Esto simplemente significa que el mensaje oculto alterará el último bit de un byte en una imagen. Al alterar ese último bit, no habrá relativamente cambio en el color de ese píxel dentro de la imagen del portador. Esto evita que el mensaje se detecte fácilmente. El mejor tipo de archivo de imagen para ocultar información es un mapa de bits de 24 bits. Esto se debe al gran tamaño de archivo y alta calidad.
esteganografía en audio
En los archivos de audio, el método más prominente para ocultar información es el método de codificación de bits baja. El método de codificación de bit bajo es similar al método de bit menos significativo utilizado en los archivos de imagen. La información secreta se adjunta al final del archivo. Uno de los problemas con la codificación de bit bajo es que puede ser notable para el oído humano. Si alguien está tratando de ocultar información, esto podría ser riesgoso, ya que es tan fácilmente detectable. El método de espectro ensanchado es otro método que se ha utilizado en la ocultación de información en archivos de audio. Lo que hace este método es agregar ruido aleatorio a la transmisión de audio. Este método permite que la información se distribuya a través del espectro de frecuencia y permanezca oculta bajo el ruido aleatorio. El último método que se ve en la esteganografía de audio es la ocultación de datos. Este método busca ocultar información mediante el uso de ecos que se producen naturalmente en los archivos de sonido. Luego, se puede agregar sonido adicional a estos ecos, el sonido adicional es el mensaje oculto. Esta es una manera suficiente de ocultar información, especialmente ya que incluso mejora el sonido del archivo de audio original en algunos casos.
esteganografía En video
esteganografía en los vídeos es, básicamente, ocultamiento de información en cada cuadro de video. Solo se esconde una pequeña cantidad de información dentro del video, por lo general no se nota en absoluto, sin embargo, mientras más información esté oculta, más evidente será. Este método también es efectivo, pero debe hacerse correctamente o revelar más información en lugar de ocultarse.
esteganografía En Documentos
Esto es básicamente añadir espacio blanco y pestañas para los extremos de las líneas de un documento. Este tipo de esteganografía es extremadamente eficaz, ya que el uso de espacios en blanco y pestañas no es visible para el ojo humano en la mayoría de los editores de texto/documentos.
También puede hacer referencia a esta open source project
Este article puede ser muy útil.
No necesita ningún tipo de herramienta avanzada para ocultar un archivo en una imagen; solo necesita conocer algunos comandos básicos de DOS ... simplemente siga el siguiente enlace para ver cómo hacerlo (es un resumen Descripción de imagen esteganografía):
https://www.youtube.com/watch?v=ox9ArqXtaWw&list=PLqEKOAKK4IbSTfDJZE_lH-DiOjOzZUczx&index=2
en las ventanas se pueden utilizar comandos sencilla para ocultar archivo de la imagen: copy/b + cat.jpg cat_new.jpg Documents.rar. Y luego use por ejemplo winrar para extraer datos desde la imagen desde el archivo.
Pero la mejor manera es utilizar Steganography.
programa sencillo para él para Linux y Windows: http://linux01.gwdg.de/~alatham/stego.html
uso de este programa que va a utilizar frase de paso, sin que nadie se sabrá, que hided algunos datos en la imagen))
datos comprimidos en archivos GIF es en trozos de tamaño variable. cada fragmento comienza con un byte de longitud. Normalmente estos trozos son 255 bytes de datos (y el byte de longitud dice 255) excepto los dos últimos trozos (el último es 0)
Pero podría volver a codificar el gif con trozos cuyo tamaño deletrea el mensaje por ejemplo, el uso de caracteres para el texto ASCII o bytes 1
2
3
4
representa 00
01
10
11
datos binarios,
análisis byte-frecuencia en el gif revelaría menos de esperados de 255 bytes. y el tamaño sería mayor que el original, pero la imagen se vería exactamente igual.
- 1. Exportar gráficos de JPanel a .png o .gif o .jpg
- 2. PIL Convertir PNG o GIF con transparencia a JPG sin
- 3. PIL - Convertir Marcos GIF a JPG
- 4. Convierta png/jpg/gif a ico
- 5. iPhone: accede a la información de ubicación desde una foto
- 6. ¿Cómo se puede ocultar una ventana de la aplicación win32?
- 7. de combinación de imágenes en PHP - GIF y JPG
- 8. ¿Cómo se puede habilitar la cámara panorámica iOS 6.0 dentro de una aplicación?
- 9. Cómo validar en HTML5 para permitir solo en 'input type = "file"' JPG, GIF o PNG?
- 10. ¿Convertir imagen JPG/GIF a PNG en PHP?
- 11. Guardar información de geoetiqueta con foto en iOS4.1
- 12. Xdebug ocultar información de volcado?
- 13. Cómo obtener una foto de fecha creada en java
- 14. ¿Cómo ocultar la información de wsdl en WCF?
- 15. La cámara Android se congela después de tomar una foto
- 16. Cargar Jpg/Gif/Mapa de bits y convertir a mapa de bits
- 17. Reducción de JPG durante la descompresión JPG
- 18. ¿Cómo se permite al usuario elegir una foto de su cámara o biblioteca de fotos?
- 19. Favicon formato GIF o ICO?
- 20. Ocultar información sobre herramientas nativa usando jQuery
- 21. ¿Cómo se puede desactivar una función dentro de un defun?
- 22. jpg Tipo de contenido
- 23. ajuste del título de la ventana/foto
- 24. No se puede ocultar la pantalla de bienvenida en Emacs
- 25. IE6 - no se puede cargar un archivo JPG normal
- 26. Foto Algoritmo de mosaico. ¿Cómo crear una foto de mosaico dada la imagen básica y una lista de mosaicos?
- 27. Cómo guardar una foto raw_data con paperclip
- 28. ¿Cómo se puede ahorrar una página HTML dinámica o generada?
- 29. ¿Cómo saber o calcular la profundidad de campo de una foto desde etiquetas EXIF?
- 30. No se puede asignar la variable dentro de la receta
No etiquete palabras compuestas. "información" sola es una etiqueta completamente inútil para esta pregunta; y el término técnico para esto es "esteganografía". Por favor, no elimines eso. http://en.wikipedia.org/wiki/Steganography –
Gracias por la pista, ¡no sabía eso antes! :) –
Almacenar la información en los datos EXIF. – geoff