Как стать автором
Обновить

Комментарии 18

Тема интересная. Попробуйте доразвить её и сделать дополнительное шифрование сообщения и извлечение зашифрованного сообщения из изображения.
да, не спорю, тема интересная.
но для меня она была интересна (и даже очень), только в процессе написания курсовой :) сейчас же, это просто осталось как опыт работы с gif-изображениями и стеганографией
Нечто подобное делали на курсовой на C++ на втором курсе. Препод говорила, что довольно перспективное направление. Суть у нас была в шифровании пароля в картинке, если очень грубо выразиться.
НЛО прилетело и опубликовало эту надпись здесь
Для инвайтов на хабр можно использовать, как дополнительный элемент защиты.
Предлагаю моднуть драйвер TrueCrypt для прозрачной работы со стеганографическим контейнером, распиленным на части и засунутым в коллекцию разнородных медиафайлов. Вот це будет курсовая. :)
Делал подобную работу на 3-м курсе в качестве курсового. Можно было как шифровать так и извлекать текст. Насколько помню — писал на Delphi =)
В этой записи есть только одна GIF-картинка (первая), и то без скрытого текста внутри.
А где же секретный паззл для любопытных?!
осталось текст сжать и положить в конец файла и заново изобрести Rarjpeg, или Rargif, как в данном случае
Вообще, можно добавить в палитру несколько одинаковых цветов. Например, ее можно просто продублировать. При расшифровке смотреть — если для пикселя используется первый цвет, значит закодирована 1, иначе 0. Правда, много данных туда не засунешь, за то незаметно.
Да нет, вот туда-то как раз и засунешь МНОГО. Изображение может быть большого размера в пикселах, может быть анимированным, может не вызывая подозрений весить хоть несколько мегабайт — и каждый байт оттуда будет доступен для сокрытия данных. А мучить палитру, как в статье — практического смысла не имеет.
Вы серьёзно считаете, что весь этот UML сделал программу понятнее?
int bOrigColorCount = (int)Math.pow(2, bsize+1);

Да уж… Вот так можно?
int bOrigColorCount = 1 << (bsize + 1);
Можно. Только, возможно, автор не посчитал нужным оптимизировать эту строку кода. Честно, ну выполнится сдвиг быстро, ну и что с того? :) Он же не в цикле.
я не очень-то заботился об оптимизации, главное — воссоздать алгоритм
тем более, я как-то не очень люблю придумывать сверхбыстрые и оптимизированные алгоритмы… меня больше занимает придумывание структуры, взаимодействия между классами/объектами/интерфейсами и т.д.
а почему бы не использовать анимашки? Каждый кадр может иметь свою палитру, дальше всё понятно
ну да, можно было развивать и развивать, но тогда и этого было достаточно для максимальной оценки.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории