Иногда бывает нужно зашифровать какую-нибудь фразу или текст. Например для того, чтобы передать по открытому каналу или разместить собственную метку в открытой базе данных. К нашему удивлению, не так-то просто найти дельный совет для решения этой задачи. Почему-то все считают нужным высказаться по поводу шифрования разделов, дисков или директорий, а такой простой вопрос обойдён стороной. Исправим эту несправедливость.
Предлагается использовать пакет openssl. В системе Puppy Linux 5.7.1 установлена версия 1.0.1. Набираем в терминале:
# openssl
OpenSSL>
OpenSSL> version
OpenSSL 1.0.1 14 Mar 2012
OpenSSL>
OpenSSL> exit
#
Очень хорошо. Тогда набираем следующее:
# echo "текст" | openssl enc -aes-256-cfb -a -pass pass:mypassword
Здесь «текст» — то, что хотим зашифровать, а «mypassword» — пароль, который идёт открытым текстом. Обо всех остальных ключах и командах лучше почитать на сайте openssl в разделе справочника команд (для актуальной версии). В нашем случае это здесь.
Кстати, результатом этой команды будет следующее: U2FsdGVkX1+UNvuChFwiqxRpP27ZxlM59R/7, или следующее: U2FsdGVkX18×4N6iJWuaZxwsm0/FIISRcFmK, или так: U2FsdGVkX19bZdbzdPmiPzRdfXG+hTyEyKo/, или так U2FsdGVkX18nKcDk0582KvpRjQLNMGyUYfvc. Всё это варианты выполнения указанной выше строки команд, где слово «текст» шифруется с паролем «mypassword» алгоритмом AES-256 в режиме CFB с последующим кодированием base64.
Соответственно дешифрирование производится такими командами:
echo шифр | openssl enc -aes-256-cfb -a -d -pass pass:mypassword
Пробуем:
# echo U2FsdGVkX1+UNvuChFwiqxRpP27ZxlM59R/7 | openssl enc
-aes-256-cfb -a -d -pass pass:mypassword
текст
#
# echo U2FsdGVkX18x4N6iJWuaZxwsm0/FIISRcFmK | openssl enc
-aes-256-cfb -a -d -pass pass:mypassword
текст
#
# echo U2FsdGVkX19bZdbzdPmiPzRdfXG+hTyEyKo/ | openssl enc
-aes-256-cfb -a -d -pass pass:mypassword
текст
#
# echo U2FsdGVkX18nKcDk0582KvpRjQLNMGyUYfvc | openssl enc
-aes-256-cfb -a -d -pass pass:mypassword
текст
#
Все четыре варианта дали слово «текст».
PS: Слова «дешифрование» в русском языке нет.
PS2: Для Base64 шифрования применяем следующую команду:
# echo | openssl base64 -in falename.jpg -A
В этом случае после ключа -in идёт адрес файла, который следует зашифровать (в нашем случае — изображение в JPEG). Ключ -A говорит о том, что полученную текстовую строку не надо разбивать на блоки.
© itfo.ru Photo: demian757 via fotki.yandex.ru