2008-09-08 11 views
20

Итак, чтобы упростить свою жизнь, я хочу добавить от 1 до 7 дополнительных символов в конце некоторых jpg-изображений, которые обрабатывает моя программа *. Это фиктивные дополнения (наполнители и т. Д. - возможно, все 0x00), чтобы размер файла был кратным 8 байтам для блочного шифрования.Будут ли случайные данные, добавленные к JPG, сделать его непригодным для использования?

Пробуя это с помощью нескольких программ, кажется, что они прекрасны с дополнительными символами, которые появляются после FF D9 that specifies the end of the image - так что формат файла достаточно четко определен, что «коррупция», которую я добавляю в конец не должен иметь значения.

Я могу всегда обрабатывать файлы позже, если это необходимо, но я предпочитаю делать самое простое, что позволяет им оставаться (я дешифрую другие типы файлов, и они не будут возражать, поэтому иметь специальный случай раздражает).

Я полагаю, что все разговоры о Steganography hullaballo лет назад, кто-то имеет несколько входных здесь ...

(обработка шифрования по 8 байт блоков, я не хочу, чтобы сохранить предварительно шифруется размер файла, так добавьте 0x00 для ввода данных и оставьте их там после декодирования)

ответ

20

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

Фактически, у людей есть скрытые ZIP-файлы внутри jpg-файлов, добавляя данные zip в конец данных jpg. Из-за того, как эти форматы структурированы, результирующий файл действителен в любом формате.

+0

непригодный (что было вопросом) не то же самое, что уменьшить его удобство использования. Бит никчика, я дам. Но, важное различие, потому что это может быть жизнеспособным решением. –

+0

Хорошо, я не уверен, что высказывание «без снижения его удобства использования» может означать «сделать его непригодным для использования», но я отредактирую это, чтобы сделать его более понятным. – pkaeding

+0

Хе-хе-хе. Мы, программисты, можем разделить волосы так прекрасно ... –

7

Вы можете .., но результаты могут быть непредсказуемыми.

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

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

3

Вы можете вставлять свои данные в тег XMP в пределах полей JPEG (или EXIF ​​или IPTC, если на то пошло). XMP - это XML, поэтому у вас есть достаточная гибкость, чтобы вы могли создавать собственные вещи.

Это, вероятно, не Простейшая вещь, но при этом ваши данные здесь сохранят целостность JPEG и не требуют «последующей обработки».

Данные будут отображаться в других программах обработки изображений, таких как PhotoShop, которые могут быть не идеальными.

1

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

Однако здесь есть большая проблема. Судя по вашему вопросу, я понимаю, что вы практикуете «безопасность через безвестность». Это широко считается очень плохой практикой. Используйте Google, чтобы найти множество статей по этой теме.

+3

Что это значит? Я использую алгоритм TEA для шифрования данных, но он шифрует 8 байтов за раз. Вместо того, чтобы включать метаданные в зашифрованный файл, чтобы сообщить мне, насколько велики исходные данные, я заполняю оригинал до границы 8 байтов и оставляю заполнение на месте. –

 Смежные вопросы

  • Нет связанных вопросов^_^