OpenSSL: [link]
Симметричное шифрование.
Параметры шифрования файла:
-enc - Шифрование с помощью симметричных алгоритмов шифрования;
-e - Указываем, что будем шифровать файл;
-d - Указываем, что будем расшифровывать файл;
-aes-256-cbc - Использующийся алгоритм шифрования;
-k - Указываем пароль шифрования, если не указать, то пароль будет запрашиваться;
-salt - Увеличивает стойкость шифрования;
-in - Файл, который будем шифровать;
-out - Файл который получится после шифрования;
-a - Говорит OpenSSL что зашифрованные данные в кодировке Base64.
Зашифруем файл используя алгоритм AES с длиной ключа 256 бит:
openssl enc -e -aes-256-cbc -salt -k pass -in file.pdf -out file.pdf.enc
А теперь расшифруем:
openssl enc -d -aes-256-cbc -in file.pdf.enc -out file.pdf
Без использования опции -salt, существует возможность проведения высокоэффективной атаки по словарю, что приведет к раскрытию зашифрованных данных. Причина этого заключается в том, что без добавления ‘соли’, один и тот же пароль всегда генерирует один и тот же секретный ключ.
Когда используется соль, первые 8 байтов резервируются под нее. Она генерируется случайным образом при шифровании файла и считывается с зашифрованного файла во время дешифрации.
Алгоритм Base64:
- Добавляем опцию -a;
- Так же, опция -a, должна быть указана при дешифрации.
Tar без сжатия + Шифрование:
# tar -cf - /home/MTv | openssl enc -e -aes-256-cbc -salt -k pass -out /home/enc/MTv.tar.enc # Заархивировать и зашифровать директории;
# openssl enc -d -aes-256-cbc -k pass -in /home/enc/MTv.tar.gz.enc | tar -xz -C /home/MTv # Расшифровать директории и распаковать архив;
Tar.gz со сжатием + Шифрование:
# tar -czf - /home/MTv | openssl enc -e -aes-256-cbc -salt -k pass -out /home/enc/MTv.tar.gz.enc # Заархивировать и зашифровать директории;
# openssl enc -d -aes-256-cbc -k pass -in /home/enc/MTv.tar.gz.enc | tar -xz -C /home/MTv # Расшифровать директории и распаковать архив;
Или например вот так:
Аналогично верхнему примеру.
- Шифруем;
# tar -czf - /home/MTv | openssl enc -e -aes-256-cbc -salt -k pass > /home/enc/MTv.tar.gz.enc
- Дешифруем;
# openssl enc -d -aes-256-cbc -k pass -in MTv.tar.gz.enc | tar -xz -C /home/MTv
Шифрование и дешифровка текста:
Алгоритм Base64:
- Шифруем;
# echo "Шифрование" | openssl enc -base64
- Дешифруем;
# echo "0KjQuNGE0YDQvtCy0LDQvdC40LUK" | openssl enc -d -base64
Симметричное с aes-256-cbc:
Если вы хотите выводить зашифрованные сообщения в файл вместо STDOUT, просто перенаправляйте вывод с помощью ">". При сохранении шифра в файле, вы можете опустить опцию -a, так как вам больше не нужен вывод в виде ASCII-текста:
- Шифруем;
# echo "Дешифрование" | openssl enc -aes-256-cbc -k pass -a
- Шифруем в файл;
# echo "Дешифрование" | openssl enc -aes-256-cbc -k pass > message.enc
- Дешифруем;
# openssl enc -d -aes-256-cbc -k pass -in message.enc
GnuPG: [link]
Симметричное шифрование файлов:
Шифрование с использованием пароля.
# gpg -c file # Зашифровать файл по паролю;
# gpg file.gpg # Расшифровать файл ( -o другой файл).
Асимметричное шифрование:
Шифрование с использованием ключей.
Сгенерируем публичный и приватный ключи:
# gpg --gen-key
- Ключи сохраняются в ~/.gnupg/,
+ pubring.gpg # Содержит ваш публичный ключ а так-же импортируемые ключи;
+ secring.gpg # Может содержать больше одного ключа;
Некоторые часто используемые опции:
-e, --encrypt - Зашифровать данные;
-d, --decrypt - Расшифровать данные;
-r ИМЯ - Зашифровать для получателя ИМЯ (или "полное имя" или "email@domain");
-a - Создать "ascii armored" вывод ключа;
-o - Вывести в файл;
Шифрование только для персонального использования:
Не требует экспорта/импорта какого либо ключа, они у вас уже есть.
- Зашифровать с помощью публичного ключа;
# gpg -e -r "Your Name" file
- Расшифровать. Используется опция -o, иначе пойдкт в stdout;
# gpg -o file -d file.gpg
Статьи: - | OpenSSL | GnuPG | NiXP |