TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Image Steganography: Скрытие текста в изображениях при помощи PHP

1 231

Стеганография – это искусство и наука написания скрытого сообщения таким образом, чтобы никто, кроме отправителя и предполагаемого получателя, не подозревал о существовании сообщения.

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

Связанная теория:

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

Красный:

Двоичный код: 11001001

Десятичное число: 201

Зеленый цвет:

Двоичный код: 11111000

Десятичное число: 201

Синий:

Двоичный код: 00000011

Десятичное число: 3

Эта композиция рождает оранжевый цвет.

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

В этом примере мы меняем только LSB синего компонента. Но мы можем изменить LSB всех компонентов Red, Green и Blue, если захотим. Поскольку мы меняем только младший бит синего компонента, количество информации, которое мы можем скрыть, уменьшается. Мы также можем сохранить длину скрытого сообщения в изображении, которое не было сделано в этом руководстве.

Предположим, мы хотим скрыть 1101 в изображении.

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

Предположим, мы получили следующие значения RGB в первых 4 пикселях изображения:

11001100 10010001 00101011

00011000 11110000 11111110

11100010 00100101 01010101

11111101 00001010 01000011

Теперь мы заменим последний бит значения RGB каждого пикселя на 1101 последовательно.

Итак, новое значение RGB становится:

11001100 10010001 00101011

00011000 11110000 11111111

11100010 00100101 01010100

11111101 00001010 01000011

Выделенный бит представляет сообщение, которое мы скрываем на изображении.

Теперь мы устанавливаем новое значение RGB в пиксель. Это изменение не обнаружено человеческим глазом, и изображение выглядит одинаково.

Зелье шифрования завершено, и теперь мы расшифруем скрытое сообщение на картинке.

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

Реализация с PHP

Нам нужно одно изображение и три php-скрипта для реализации базовой стеганографии изображения.

  • encrypt.php
  • decrypt.php
  • functions.php
  • 1.jpg

encrypt.php

decrypt.php

functions.php

Источник записи: https://thedebuggers.com

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