Как вы можете скрыть информацию внутри фотографии в формате jpg или gif?

StackOverflow https://stackoverflow.com/questions/1216156

Вопрос

Как я могу записать некоторую информацию внутри файла фотографии, такого как jpg или gif, не разрушая изображение?и, конечно, не показывая это на фотографии, поскольку вся идея заключается в том, чтобы отправить информацию в файле фотографии никем не обнаруженной (чтобы в какой-то степени обеспечить безопасность / конфиденциальность)!

Это было полезно?

Решение

Вы можете сохранить некоторую информацию в метаданных изображения.Фактически, именно так цифровые камеры man "помечают" сделанные ими фотографии (модель камеры, дату и время, координаты GPS и т.д.).

Этот формат данных называется EXIF (Сменный формат файла изображения).Есть много примеров, как использовать это в языках программирования. Вот пример на Java.

Если вы хотите запретить пользователям читать эти данные, вы можете каким-то образом зашифровать их, но они всегда смогут удалить их с вашей фотографии (открыв в Photoshop и используя Сохранить как, например).

Другие советы

Вы можете объединить gif и zip (информацию, которую хотите скрыть) в один файл. GIF-файлы читаются с начала файла, а ZIP-файлы читаются с конца файла.

Чтобы создать такой файл в Linux:

$ cat file1.gif >> outfile.gif
$ cat file2.zip >> outfile.gif

Полученный файл должен иметь размер file1.gif и file2.zip вместе и должен открываться любым средством просмотра gif и обработчиком zip-файла.

Я уверен, что есть много способов. Вот один из них:

На фотографии незначительные различия в цвете часто бы не были заметны невооруженным глазом, или даже если их заметили, их можно легко принять за недостатки качества изображения.

Итак, чтобы взять простой пример, предположим, что у вас было GIF-изображение в оттенках серого, где палитра расположена в порядке от белого до черного с плавным диапазоном серого между ними. Я не уверен, сколько вы знаете о графических форматах файлов, но в GIF у вас есть один байт на пиксель, при этом каждое возможное значение байта отображается на определенный цвет. Таким образом, в этом случае мы могли бы сказать, что паллета № 0 = RGB (0,0,0), паллета № 1 = RGB (1,1,1), ... palette # 255 = RGB (255,255,255).

Затем вы делаете обычную настоящую фотографию. Разбейте ваше секретное сообщение на отдельные биты. Установите последний бит каждого номера индекса палитры для последовательных битов вашего сообщения.

Например, предположим, что первые восемь пикселей исходной фотографии, скажем, 01 00 C9 FF FF C8 42 43. Ваше сообщение начинается с буквы "C", код ascii 0110 0111. Таким образом, вы меняете последний бит первого байта на 0, меняя байт с 01 на 00. Вы меняете последний бит второго байта на 1, меняя байт с 00 на 01. Вы меняете последний бит третьего байта на 1. Это уже 1 , так что это не имеет значения. И т.д. Вы получите кодированные 8 байтов 00 01 C9 FE FF C9 43 43.

Изменения в цветах были бы настолько тонкими, что вряд ли кто-нибудь, глядя на картинку, это заметил бы. Даже если бы они это заметили, если у них не было причины быть подозрительными, они, скорее всего, просто пришли бы к выводу, что качество изображения было не идеальным.

Конечно, ничто не говорит о том, что вы должны использовать 1 бит на байт для секретного сообщения. В зависимости от степени ухудшения качества, которое, по вашему мнению, вы можете избежать, вы можете использовать 2 бита на байт или просто изменить 1 бит на каждый другой байт и т. Д.

Конечно, та же самая техника может использоваться с цветными фотографиями: изменить последний бит в каждом из компонентов RGB, чтобы кодировать 3 бита на пиксель и т. д.

Эй, этот метод называется стеганографией. При этом мы можем скрывать сообщения не только в изображениях, но также в аудио, видео и других форматах.

Вот открытое программное обеспечение для стеганографии, которое называется steganotool . Этот проект представляет собой инструмент стеганографии с открытым исходным кодом, который может использоваться для скрытия и извлечения текста в / из растровых изображений.

О стеганографических средах

Стеганография в изображениях

Этот тип стеганографии очень эффективен против открытий и может служить различным целям. Эти цели могут включать в себя аутентификацию, сокрытие сообщений и передачу ключей шифрования. Наиболее эффективным методом для этого типа стеганографии обычно является метод наименее значимого бита. Это просто означает, что скрытое сообщение изменит последний бит байта в изображении. При изменении этого последнего бита цвет этого пикселя в пределах изображения-носителя будет относительно не изменяться. Это предотвращает легкое обнаружение сообщения. Лучший тип файла изображения для скрытия информации внутри - это 24-битное растровое изображение. Это связано с большим размером файла и высоким качеством.

Стеганография в аудио

В аудиофайлах наиболее известным методом сокрытия информации является метод кодирования с низким уровнем битов. Метод кодирования младших битов несколько похож на метод младших битов, используемый в файлах изображений. Секретная информация прилагается в конце файла. Одна из проблем, связанных с низким битовым кодированием, заключается в том, что это может быть заметно человеческому уху. Если кто-то пытается скрыть информацию, это может быть рискованно, так как ее легко обнаружить. Метод расширенного спектра является еще одним методом, который использовался для сокрытия информации в аудиофайлах. Что этот метод делает, это добавляет случайный шум к аудио трансляции. Этот метод позволяет распространять информацию по частотному спектру и оставаться скрытым под случайным шумом. Последний метод, который можно увидеть в аудиостеганографии - это скрытие эхо-данных. Этот метод стремится скрыть информацию, используя эхо, которое естественно возникает в звуковых файлах. Затем к этому эхо можно добавить дополнительный звук, при этом дополнительный звук является скрытым сообщением. Это достаточный способ скрыть информацию, тем более что в некоторых случаях он даже улучшает звучание исходного аудиофайла.

Стеганография в видео

Стеганография в видео - это, по сути, сокрытие информации в каждом кадре видео. Только небольшое количество информации скрыто внутри видео, которое обычно вообще не заметно, однако, чем больше скрытой информации, тем более заметной она станет. Этот метод также эффективен, но его нужно делать правильно, иначе нужно раскрывать больше информации, а не прятаться.

Стеганография в документах

Это в основном добавление пробелов и табуляции к концам строк документа. Этот тип Стеганография чрезвычайно эффективна, потому что использование пробелов и вкладок невидимо для человеческого глаза в большинстве редакторов текста / документов.

Вы также можете обратиться к этому проекту с открытым исходным кодом

Эта статья может быть очень полезной.

Если вы хотите спрятать данные (текст, другое изображение и т. д.) в файл JPEG, вы можете просто добавить их в конец файла. При просмотре изображения вы увидите только исходное изображение, а добавленные вами данные будут проигнорированы.

Хотя это и не суперский способ скрыть данные, это хороший способ скрыть другой файл JPEG, так как если кто-то откроет файл в блокноте или редакторе шестнадцатеричных кодов, он, вероятно, не заметит, что существует два файла JPEG, а не один. потому что конец второго изображения все равно будет выглядеть как первый.

В Windows вы можете использовать простую команду, чтобы скрыть архив в изображении: copy / b cat.jpg + Documents.rar cat_new.jpg. А затем используйте, например, WinRar для извлечения данных из изображения, как из архива.
Но лучше использовать стеганографию.
простая программа для Linux и Windows: http://linux01.gwdg.de/~alatham/ stego.html
используя эту программу, вы будете использовать парольную фразу, без которой никто даже не узнает, что вы скрыли некоторые данные в картинке))

сжатые данные в файлах GIF находятся в чанках переменного размера. каждый кусок начинается с байта длины. Обычно эти порции представляют собой 255 байтов данных (а длина байта говорит 255), за исключением двух последних порций (последний равен 0)

Но вы могли бы перекодировать GIF с кусками, размер которых прописывает сообщение например, использование символов для текста ASCII или байтов 1 2 3 4 , представляющих 00 < code> 01 10 11 двоичные данные,

Частотный анализ

на gif выявит меньше ожидаемых 255 байтов. и размер будет больше, чем оригинал, но изображение будет выглядеть точно так же.

Вам не нужен какой-либо расширенный инструмент для скрытия файла в изображении & # 8211; & # 8211; вам просто нужно знать некоторые основные команды DOS & # 8230; просто перейдите по ссылке ниже, чтобы узнать, как это сделать (это краткое описание image steganography ):

https://www.youtube.com/watchv ox9ArqXtaWw & амп; список = PLqEKOAKK4IbSTfDJZE_lH-DiOjOzZUczx & амп; индекс = 2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top