Ось кілька способів зробити це. Варто зазначити, що якщо ви збираєтесь використовувати окремі засоби стиснення та шифрування, ви завжди повинні стискати перед шифруванням, оскільки зашифровані дані, по суті, не стискаються.
Ці приклади стискають і шифрують файл, який називається clear_text
.
Використання gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg буде стискати вхідний файл перед шифруванням за замовчуванням, -c
означає використовувати симетричне шифрування з паролем. Вихідний файл буде clear_text.gpg
. Однією з переваг використання gpg
є те, що використовується стандартні формати OpenPGP, тому будь-яке програмне забезпечення для шифрування, яке підтримує OpenPGP, зможе розшифрувати його.
Використання mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
-z
Варіант компреси. За замовчуванням це виводить файл з назвою clear_text.gz.nc
.
Використання bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt стискає перед шифруванням за замовчуванням, -r
варіант такий, щоб вхідний файл не видалявся в процесі. Вихідний файл викликається clear_text.bfe
за замовчуванням.
Використання gzip
таaespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe - це, як це звучить, програма, яка приймає введення на stdin та виводить aes зашифровані дані на stdout. Він не підтримує стиснення, тому ви можете спочатку подати вхід через gzip. Оскільки вихід виходить на stdout, вам доведеться перенаправити його на файл з назвою на власний вибір. Напевно, не найефективніший спосіб робити те, що ви просите, але еспіра є універсальним інструментом, тому я вважав, що це варто згадати.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz