Pull to refresh

Comments 24

UFO just landed and posted this here
«Стеганографию» в тегах я отметил, в оригинале автор этот термин не использовал, так возможно, он для себя её и открыл, да.
UFO just landed and posted this here
Это чем-нибудь отличается от LSB?
Судя по описанию в LSB в wiki, это она и есть, младший бит цвета используется для хранения информации.
LSB — это больше способ хранения информации в контейнере, алгоритмы же могут быть совсем разные, в том числе и такой простой
Не робастная стеганография, к сожалению, не имеет практического применения.
Распространенное заблуждение.
После сжатия было бы не плохо еще и шифрануть.
Как уже писали ранее — это просто LSB.
Дело в том, что мы сохраняем изображение без сжатия, иначе это приведет к потере данных. В то время как исходный файл весит 307 KB, после сохранения данных получаем 759 KB. Но я, к сожалению, не вижу вариантов решения этой проблемы.
Еще бы, png использует сжатие, а тут энтропия увеличилась.
Кстати, есть «атака методом сжатия» — не очень эффективное решение, но если данных внесено много, это позволяет обнаружить стеганографию (и не обязательно LSB)
А если таким же образом запихать нужную информацию в младшие биты коэффициентов DCT в JPEG, то размер файла не поменяется и выглядеть результат будет как сильнее сжатый JPEG.

В первом случае, пожалуй, стоит использовать is_writable, вместо is_readable, в файл же будут записываться данные.

Существующий файл только для чтения, для записи результата создается новый png файл:


И собственно все! Осталось только сохранить изображение:
imagepng($image, dirname($imagePath) . '/jailbirded_' . basename($imagePath), 0); 

И то верно, не учел что файл новый создаётся.
Тогда можно эту проверку на каталог изображения перенести.

Мда, новое это хорошо забытое старое, еще 20 лет назад мы так в BMP-шки прятали подписи и т.п…
Хех, я помню как лет 10 назад, когда ещё небо не было в облаках, а файлопомойками пользоваться не хотелось по ряду причин, так сохранялись файлы на провайдерских или популярных фото-сервисах. Ну и ещё через отсылку файлов себе на e-mail, если не требовалось расшарить файл для незнакомых людей (которым опасно доверять пароль от такого ценного мыльного сейфа)
UFO just landed and posted this here
Но не на пхп же!!!
// should it be positive
if ($bit == '1')  
{
    // should be positive but is negative
    if ($negative)
    {
        if ($color < 255) {
            $color++;
.....

Какой бессмысленный и беспощадный код. С ушами бы хватило:
$color = $bit ? $color | 0x1 : $color & 0xFE;


Дополнительную ясность коду также добавляет попеременное обозначение одного и того же то понятиями «odd» и «even», то «positive» и «negative»
Какая-то сферическая стеганография: мы увеличили файл в несколько раз и попросили его не сжимать.
Png — это контейнер с потоками данных, можно просто вписать в отдельный поток, и стандартными средствами разницы вообще не заметить.
Sign up to leave a comment.

Articles