# openssl aes-128-cbc -salt -in file -out file.aes # openssl aes-128-cbc -d -salt -in file.aes -out fileЕстественно файл может быть и архивом.
# tar -cf - directory | openssl aes-128-cbc -salt -out directory.tar.aes # Шифрование директории # openssl aes-128-cbc -d -salt -in directory.tar.aes | tar -x -f - # Дешифровка директории
# tar -zcf - directory | openssl aes-128-cbc -salt -out directory.tar.gz.aes # Шифрование директории # openssl aes-128-cbc -d -salt -in directory.tar.gz.aes | tar -xz -f - # Дешифровка директории
-k mysecretpassword
после aes-128-cbc, что-бы не спрашивался пароль, но имейте в виду, это очень небезопасно.Альтернатива PGP, распространяемая по лицензии GPL(GNU General Public License).
GnuPG очень известный способ шифрования и подписи электронных писем или других данных, кроме того gpg предоставляет расширенную систему управления ключами. В данных примерах рассматривается только шифрование файлов
Самым простым является симметричный шифр. В этом случае файл шифруется с помощью пароля, соответственно расшифровать его може тот, кто знает этот пароль, никаких ключей не требуется. Gpg добавляет расширение "*.gpg" к имени зашифрованного файла.
# gpg -c file # Зашифровать файл по паролю # gpg file.gpg # Расшифровать файл ( -o другой файл)
# gpg --gen-key # Это может занять некоторое время
Ключи сохраняются в ~/.gnupg/
на Unix и в C:/Documents and Settings/%USERNAME%/Application Data/gnupg/.
на Windows системах.
~/.gnupg/pubring.gpg # Содержит ваш публичный ключ а так-же импортируемые ключи ~/.gnupg/secring.gpg # Может содержать больше одного ключаНекоторые часто используемые опции:
Не требует экспорта/импорта какого либо ключа, они у вас уже есть.
# gpg -e -r 'Your Name' file # Зашифровать с помощью публичного ключа # gpg -o file -d file.gpg # Расшифровать. Используется опция -o, иначе пойдкт в stdout
Для начала вам нужно экспортировать ваш публичный ключ, что-бы им могли пользоваться для дешифровки. Так-же вы должны импортировать публичный ключ от Alice, что-бы шифровать файлы для нее. Ключи можно передать в обычном ascii файле.
Например Alice экспортирует ключ, вы его импортируете себе, теперь вы можете шифровать для нее файлы и расшифровать их сможет только она.
# gpg -a -o alicekey.asc --export 'Alice' # Alice экспортирует ключ в ascii файл. # gpg --send-keys --keyserver subkeys.pgp.net KEYID # Alice кладет ключ на сервер. # gpg --import alicekey.asc # Вы импортируете ключ себе. # gpg --search-keys --keyserver subkeys.pgp.net 'Alice' # Или забираете его на сервере.
# gpg -e -r 'Alice' file # Зашифровать файл для Alice. # gpg -d file.gpg -o file # Расшифровать файл, зашифрованный Alice для вас.
# gpg --list-keys # Список публичных ключей с KEYIDS KEYID следует за '/' например для: pub 1024D/D12B77CE - KEYID это D12B77CE # gpg --gen-revoke 'Your Name' # Сгенерировать CRL (certificate revocation list) # gpg --list-secret-keys # Список приватных ключей # gpg --delete-keys NAME # Удалмть публичный ключ с локальной "связки ключей" # gpg --delete-secret-key NAME # Удалить приватный ключ с локальной "связки ключей" # gpg --fingerprint KEYID # Показать отпечаток ключа # gpg --edit-key KEYID # Редактировать ключ (например подпись или добавить/удалить email)