Сделают ли случайные данные, добавленные в JPG, непригодным для использования?

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

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

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

Решение

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

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

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

Ты можешь ..но результаты может быть непредсказуемым.

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

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

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

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

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

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

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

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