Шифрование текста в картинку

Шифрование текста в картинку

Я уже писал об утилите SteganPEG, позволяющей шифровать текст внутри изображения таким способом, что распознать зашифрованное сообщение не представляется возможным. такая технология шифрования называется стеганография, и по ней работает еще одна программа — Text to Color.

Программа Text to Color умеет шифровать любой текст внутри изображения. Вам нужно загрузить в программу изображение JPG, PNG или BMP, ввести текст, который вы хотите зашифровать, и сохранить изображение в формате BMP. В дальнейшем это изображение не нужно сжимать или конвертировать, иначе вы рискуете потерять зашифрованный текст. Можно подготовить текст заранее в формате TXT, и импортировать его в изображение.

Так же просто в Text to Color работает и расшифровка — вы просто выбираете изображение, в котором зашифрован текст, и сохраняете расшифрованный текст в отдельный файл формата TXT. Вычислить, каком файле зашифрован текст, нереально, так как он преобразуется в точки разных цветов, располагаемый по всей поверхности рисунка таким образом, чтобы исходное изображение не было искажено.

Содержание:

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

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

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

Чтобы это сделать, понадобится программа, которую можно скачать чуть ниже на этой странице.

bmpCoder 2.3

Рейтинг: Размер: Интерфейс: Русский Платформа: Обновлено: 2010-10-19 Разработчик: Платный аналог:

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

Как это работает

В BMP-файлах каждая точка (пиксель) кодируется с помощью 24 бит, по 8 бит на каждый из каналов (красный, зелёный и синий).

Читайте также:  Сброс памперса canon 3400

Таким образом, компьютер чётко различает 16 777 216 различных цветов, в то время как обычный человек не сможет отличить, к примеру, красный #FC130F от красного #FF141C. Он просто скажет, что это красный.

Это позволяет незаметно для глаза манипулировать цветом любого изображения.

Пиксель (англ. pixel, pel — сокращение от pix element) — минимальная точка на изображении.

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

Меняя 2 младших бита в каждом канале, мы получим по 6 свободных бит в каждом пикселе.

Таким образом, чтобы спрятать файл в изображении необходимо:

Байт (англ. byte) — единица цифровой информации

  • придумать разметку для кодируемых данных (к примеру, каждые первые 4 байта выделить под размер полезных данных, а остальные байты — под сами данные);
  • разбить всю последовательность на группы битов;
  • последовательно заменить младшие биты каждого цветового канала каждого пикселя на новые.

Для извлечения закодированного содержимого производим всё в обратном порядке: считываем младшие биты и собираем их в байты исходного файла.

Интерфейс bmpCoder

Давайте применим эту теорию на практике. Для этого нам понадобится программа bmpCoder. Скачиваем её и запускаем (программа портативная и установка не требуется).

Перед нами появится вот такое окно.

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

Шифрование файлов в изображениях с помощью bmpCoder

Теперь попробуем что-нибудь зашифровать. Для этого сначала, с помощью стандартного окна проводника Windows, указываем путь к картинке-контейнеру в формате BMP.

Для примера, возьмём картинку с "Антошкой", которую мы использовали в одной из предыдущих статей.

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

Читайте также:  Установить электронную почту бесплатно mail ru

Следующим шагом, выбираем во второй строчке кодируемый файл. Он может быть любого формата, главное, чтобы его размер не превышал допустимые для данной картинки 126 кБ. Здесь мы выбрали текстовый файл с какими-нибудь важными паролями.

Теперь лишь осталось нажать кнопку "Кодировать" и в появившемся окошке указать, куда и под каким именем будет сохранено новое BMP-изображение, содержащее в себе зашифрованный файл.

Буквально через секунду в указанной папке появится новая картинка, практически идентичная исходной, но с "секретом".

Если теперь посмотреть размер исходного и нового файла — они окажутся одинаковыми. То есть, добавление закодированного файла никак не повлияло на "вес" картинки.

Расшифровка закодированного файла

Чтобы извлечь "секретный" файл из изображения, используем нижнюю половину окна программы. Аналогично кодированию, сначала указываем путь к картинке (программа покажет размер закодированного файла), а затем, имя и расширение файла, который будет извлечён, и нажимаем "Декодировать".

Готово! Если не было допущено никаких ошибок в именах файлов, то в указанном нами месте появится расшифрованный файлик с "паролями".

Выводы

Конечно, шифрование файлов с помощью bmpCoder не претендует на какую-то серьёзную криптографическую защиту, но может неплохо развлечь офисных работников, а также, спрятать ценные файлы от посторонних глаз и "шаловливых ручек" 🙂

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Богданова.

P.P.S. Формат BMP мало распространён в силу своей "неповоротливости", но в него можно легко преобразовать любую другую картинку, даже с помощью просмотрщиков. Например, с помощью этого:
Просмотрщик фотографий XNView https://www.bestfree.ru/soft/graph/photo-viewer.php

Обучающее видео по работе с bmpCoder

Доброго времени суток, уважаемый хабрачеловек. На хабре уже проскакивали мысли о том, как спрятать текст в bitmap-изображении. К сожалению, топиков на эту тему я не нашел и решил восполнить данный пробел. Под катом Вы найдете способ сокрытия текста в bitmap’е, а также реализацию на C#.

Читайте также:  Программа на андроид для подключения usb флешки

Постановка задачи

Спрятать произвольный текст в кодировке windows-1251 в 24-разрядный bitmap рисунок и излвечь его обратно без искажений.

Структура bmp-файла

Идея алгоритма сокрытия текста

Наверное, Вы уже догадались в чем идея. Дело все в том, что глаз среднестатистического человека (не профессионального художника или фотографа) различает намного меньше цветов, чем было указано выше. Ни в одной книге нет четкого ответа на вопрос, сколько все же цветов различает глаз, но самая большая цифра, которую я встретил — 10 млн. Отсюда следует, что несколько младших битов из восьми, отводимых на каждую компоненту цвета, можно позаимствовать для наших корыстных целей.
Немного цифр: для примера возьмем и нагло отнимем у RGB компонент по два младщих бита. То есть из 24 бит у нас останется 18, которыми можно закодировать ровно 262144 цветов. Теперь возьмем текст в кодировке windows-1251, в которой каждый символ представляется 8ю битами. Путем несложных математический вычислений получаем, что 3 символа можно сохранить в 4 пикселах. Таким образом, в картинке 1024×768, где 786432 пикселов можно сохранить 589824 символа. Неплохо, да? Для наглядности приведу две картинки. На первой исходное изображение, а на второй изображение, у которого младшие два бита каждой компоненты цвета заполнены текстом. Сразу оговорюсь, что изображения сконвертированы в png, чтобы пожалеть траффик.

Если приглядется, то на втором изображении цвета кажутся тусклее. Да, это так. Но мы то с Вами знаем, что в представленном изображении что-то не так, а если бы не знали, то и не догадались бы, что в нем спрятан какой-то текст. Кстати, в изображении спрятана фраза «Hello World. =)» размноженная 100 раз.
Вот и все. Как Вы видите, идея предельно проста. Кстати говоря, представленный метод называется LSB (спасибо frol за подсказку). Напоследок, можете посмотреть реализацию на языке C#.

Ссылка на основную публикацию
Что такое селфи википедия
Се́лфи (англ. selfie , от «self» — сам, себя; русские эквиваленты — «себя́шка», «самостре́л» — считаются просторечными [1] ) —...
Что делать если завис телефон андроид
Что делать, если завис Андроид и не реагирует не на что? В этой статье мы посмотрим четыре простых способа как...
Что дают за рейтинговые бои
В кои-то веки разработчики решили прислушаться к мнению игроков и ввести в Варфейс рейтинговые матчи. Теперь каждый игрок, достигший 26...
Что такое серийный номер продукта
Все варианты «товарных» EPC, без исключения, имеют в себе поле для хранения серийного номера того конкретного объекта (товара или упаковки),...
Adblock detector