Как сделать свой QR Code (спрятать сообщение в картинке)

Rate this post

Недавно довелось мне практиковаться в создании сложной и многоуровневой загадки, где надо было использовать коды, шифрование, секретные послание и прочую ерунду. Как шифровать в Linux помощью OpenSSL, с помощью TrueCrypt и с помощью GnuPG я уже писал. А вот как сделать свой QR Code я ещё не писал. А ведь это просто. Так же, бьюсь об заклад, что в 90-х Вы не раз видели фильмы про хакеров, где супер мощные ребята прятали текстовые сообщения в картинке, в обычном изображении. Так вот, это до абсурда просто. Напоследок, в GNOME есть быстрый и удобный способ пользоваться шифрованием, с помощью утилиты Cryptkeeper. О QR Code’ах, картинках с сообщениями и Cryptkeeper’е под катом.

Как сделать QR Code

О том, что такое QR Code и где эта штуковина используется, Вы сможете прочитать более подробно на страницах Wikipedia, я только отмечу, что текстовое сообщение упакованное в QR Code не может превышать 4,296 символов, если это будут только цифры, то можно запихнуть 7,089 символов. Я это к тому, что Войну и Мир в QR Code вам засунуть не удастся, но короткое сообщение пожалуйста. Кстати для телефонов iPhone и Android есть масса приложений, которые могут не напрягаясь читать QR Code.

Для создания QR Code в Linux нужна утилита qrencode:

sudo apt-get install qrencode

Далее, что-бы создать стандартную картинку с QR Code:

qrencode -o kartinka.png 'Super Secret Message'

Задать размер можно опцией -s:

qrencode -o hello_big.png -s 10 'Super Secret Message'

Картинка с кодом появится в вашей текущей директории.

Как спрятать сообщение в картинке

Методы описанные ниже, работают как часы, но вряд ли, текстовое сообщение в картинке или фотографии, хорошая идея, во первых это старо как мир, вот вторых, после «инъекции» текста в картинку, она «полнее» и «набирает вес», а MD5-сумма тут же меняется.

Давайте возьмём вот эту картинку:

user@linux:~/Desktop$ md5sum Leda.png 
e8f3fecaa6d11b07e1cc0b51908e11e9 Leda.png

user@linux:~/Desktop$ ls -la Leda.png
-rw-r--r-- 1 user user 879328 2011-04-18 20:13 Leda.png

Обратите внимание на MD5-сумму и размер. А теперь давайте сделаем инъекцию в виде текстового сообщения в эту картинку.

cat Leda.png -> Leda_Secret.png

где:

  • Leda.png — текущая картинка
  • Leda_Secret.png — имя для картинки с текстом внутри

После выполнения команды переведенной ниже, Вы увидите только мерцающий курсор, начинайте набор сообщения, Enter — пропуск строки и Ctrl+D выход, сообщение зашивается автоматически.

А вот параметры картинки:

user@linux:~/Desktop$ md5sum Leda_Secret.png 
41491b7ec6156f5cd72df110ef6e4e01 Leda_Secret.png

user@userlinux:~/Desktop$ ls -la Leda_Secret.png
-rw-r--r-- 1 user user 879402 2011-04-18 20:14 Leda_Secret.png

Сравните MD5-сумму и «вес» картинки, вторая тяжелее первой на 74 байта. Прочитать текст в картинке можно с помощью tail:

tail Leda_Secret.png

В самом конце Вы увидите Ваш текст

Если ваше сообщение хранится в текстовом файле, то можно «слить» текст с файла в картинку «на прямую»:

cat Leda.png message.txt > secret.png

Помимо уже изученного нами кустарного метода, существует метод нормальный и куда более серьезный, но об этом отдельной статье.

Зашифрованный каталог с помощью Cryptkeeper

Это простой и не навязчивый метод зашифровать каталог в Ubuntu Linux. Ставим Cryptkeeper в систему:

sudo apt-get install cryptkeeper

Добавляем вашего юзера в группу fuse:

sudo addgroup userid fuse

Делаем Log Out -> Log On в систему. Далее идем в меню Приложения -> Системные утилиты -> Cryptkeeper (Applications -> System Tools -> Cryptkeeper) в трее у вас появится значок. Клацнете по нему левой кнопкой мыши, выберите «Новая зашифрованная папка», в открывшемся окне нажмите создать папку, дайте ей имя и нажмите «Вперед». Далее введите пароль, После чего папка примонтируется и Вы сможете сложить в нее файлы.

Для того, что-бы отмонтировать каталог, кликните левой кнопкой мыши по значку Cryptkeeper в трее и снимите галочку с каталога

admin

ссылка

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *