Оглавление:
- Запасы
- Шаг 1. Что такое стеганография
- Шаг 2. Как текст кодируется на компьютерах
- Шаг 3: Как работает программа
- Шаг 4: Заключение
Видео: Этот PNG является секретным отсеком: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-31 10:24
Ваша задача, дорогой читатель, - выяснить, какое сообщение скрыто в изображении output.png, которое я разместил для вас на github. Вы можете использовать там код MessageHider для извлечения сообщения. Если вы запутались, оставьте комментарий ниже, и я помогу вам получить ответ! Вы даже можете перестать читать прямо сейчас, просто зайдите на github, получите код и начните заниматься стеганографией. Достаточно сказано, но, пожалуйста, оставайтесь здесь, и я расскажу вам больше.
Две картинки здесь выглядят одинаково, но это не так. Это изображения greenman-p.webp
Это руководство вдохновлено отличным видео на YouTube. После того, как однажды поздно вечером посмотрели это видео и изо всех сил пытались придумать классную лекцию и промежуточный экзамен для продвинутого класса программирования Java, родился этот проект. Приведенные выше изображения вместе с кодом, описанным в этом руководстве, размещены на Github бесплатно.
Запасы
Вам понадобится компьютер, и вы должны будете знать, как скомпилировать и запустить программу Java. Эта программа представляет собой всего два коротких файла, и вам нужно будет запустить ее из командной строки.
Шаг 1. Что такое стеганография
Вы должны посмотреть видео на YouTube, которое я связал на предыдущем шаге, но вот краткое изложение:
Если вам нужно скрыть секретное сообщение для друга, отличный способ сделать это - использовать стеганографию. Идея стеганографии изображений проста; компьютерные изображения состоят из пикселей, и каждый пиксель представляет собой комбинацию красного, зеленого и синего цветов. Во многих компьютерных форматах изображений количество красного, зеленого и синего в каждом пикселе выражается в виде значений от 0 до 127. Так, например, очень красный пиксель будет иметь значение красного цвета 127 и значение зеленого и синего нуля. Уловка заключается в следующем: интенсивность красного цвета 126 неотличима от интенсивности красного цвета 127 (для человеческого глаза). Итак, возясь с плюсом или минусом один в каждом красном пикселе, мы можем скрыть биты в пикселях. Если мы найдем хитрый способ собрать биты обратно, мы сможем получить данные, которые мы пробрали в изображение!
Будь креативным! Стеганографию можно выполнять на любых цифровых носителях! Вы можете, например, поиграть с битами в музыкальных или видеофайлах, но это требует от вас дополнительных исследований, выходящих за рамки данного руководства.
Шаг 2. Как текст кодируется на компьютерах
Для понимания того, что следует здесь, может потребоваться степень в области CS или много энтузиазма. Компьютеры хранят данные в битах как единицы и нули. Эти единицы и нули обычно группируются в группы по 8 и называются «байтами». Как объясняется здесь и здесь, есть несколько способов заставить компьютер интерпретировать байты как текст. Чтобы получить максимальную отдачу от этой лекции / инструктажа по стеганографии, вам необходимо более или менее понимать ASCII и UTF8. Это два распространенных способа кодирования языковых данных в серии байтов.
Как только вы получите представление об этой теме, вы поймете следующее: в ASCII и UTF8 слово «the» представлено следующими байтами (в шестнадцатеричном формате) 0x74 0x68 0x65. В двоичном формате это следующие байты: 01110100b 01101000b 01101101b
Кроме того, вы поймете, что в UTF8 эмодзи с улыбающимся лицом представлен следующими байтами (в шестнадцатеричном формате) 0xF0 0x9F 0x98 0x80. В двоичном формате эти байты: 11110000b 10011111b 10011000b 10000000b.
В любом случае на прилагаемом скриншоте вы увидите, что мой компьютер что-то делает с этими байтами. Я выделил их в выводе программы стрелками и большим «СМОТРЕТЬ!».
Шаг 3: Как работает программа
Скомпилировать программу из github очень просто. Получите репо, показанное на первой странице здесь, а затем
Программа запускается из командной строки следующим образом: java Main input-p.webp
в прилагаемых примерах вы увидите, что я запустил java Main greenman-p.webp
Вы сделаете то же самое.
Если вы посмотрите на Main.java, вы увидите, что происходит следующее:
- Программа считывает изображение в 2D-массив
- Программа превращает предоставленное вами сообщение в массив байтов (byte )
- Затем программа использует класс MessageHider, чтобы скрыть байты сообщения в массиве изображений.
- Затем программа записывает массив 2d изображений в файл (output.png) со скрытыми данными внутри. Если вы посмотрите на это изображение, оно неотличимо от оригинала.
- Затем программа считывает output-p.webp" />
В общем, код работает так, как мы ожидали.
Шаг 4: Заключение
Итак, я дал вам рабочий код, доказательство того, что он работает в виде изображения, и несколько конспектов лекций, которые я даю студентам моего университета. Я тоже бросил тебе вызов! Я потратил несколько часов на написание кода и подготовку конспектов лекций, поэтому мне жаль, что в этом руководстве не так много изображений. Если вы считаете, что стеганография интересна, примите мой вызов!
Рекомендуемые:
Используйте Fusion, чтобы сделать этот деревянный инструмент !: 4 шага
Используйте Fusion, чтобы сделать этот деревянный инструмент! Это один из самых простых проектов, которые я сделал с помощью Fusion 360, чтобы помочь новичкам начать работу с программным обеспечением. Он показывает некоторые основные функции программного обеспечения и слишком прост, чтобы занять много времени. Требуемое программное обеспечение: Fusion 360 от Autodesk Предварительные требования
Создайте свою собственную портативную игровую консоль в стиле ретро! которая также является планшетом Win10 !: 6 шагов (с изображениями)
Создайте свою собственную портативную игровую консоль в стиле ретро! …… которая также является планшетом Win10! В этом проекте я покажу вам, как создать портативную игровую консоль в стиле ретро, которую также можно использовать в качестве планшета с Windows 10. Он будет состоять из 7 дюймов. ЖК-дисплей HDMI с сенсорным экраном, LattePanda SBC, силовая печатная плата USB Type C PD и еще несколько дополнительных
Компьютерный кулер для ПК с отсеком 5,25 дюйма для самостоятельного изготовления CD / DVD: 6 ступеней (с изображениями)
DIY CD / DVD 5,25-дюймовый компьютерный кулер для ПК: если ваш компьютер становится слишком горячим или вам нужен лучший способ охлаждения жесткого диска, вы можете заглянуть в мой проект и использовать его в своем случае! Это 8-сантиметровый вентилятор, который подходит для 2 оригинальные маскирующие панели для CD привода. Вы можете установить жесткий диск
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (веселый проект также должен быть очень качественным деревом): 3 шага
Горелка с питанием от USB! Этот проект может прожечь пластик / дерево / бумагу (забавный проект также должен быть из очень хорошего дерева): НЕ ДЕЛАЙТЕ ЭТО С ПОМОЩЬЮ USB !!!! я узнал, что это может повредить ваш компьютер из всех комментариев. мой компьютер в порядке. Используйте зарядное устройство для телефона на 600 мА, 5 В. Я использовал это, и он отлично работает, и ничего не может быть повреждено, если вы воспользуетесь предохранительной вилкой, чтобы отключить питание
Еще один корпус USB-ключа, на этот раз для аналоговых фотографов: 3 шага
Еще один корпус USB-ключа, на этот раз для аналоговых фотографов: какое-то время у меня на столе лежал USB-ключ, корпус треснул и открылся, и я держал его до тех пор, пока не нашел подходящую замену. пожалуйста, фотопленки по инструкциям