Oto kilka sposobów, aby to zrobić. Należy zauważyć, że jeśli zamierzasz korzystać z oddzielnych narzędzi do kompresji i szyfrowania, zawsze powinieneś kompresować przed szyfrowaniem, ponieważ zaszyfrowane dane są w zasadzie nieściśliwe.
Te przykłady kompresują i szyfrują plik o nazwie clear_text
.
Za pomocą gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg domyślnie kompresuje plik wejściowy przed szyfrowaniem, co -c
oznacza użycie szyfrowania symetrycznego z hasłem. Plik wyjściowy będzie clear_text.gpg
. Jedną z zalet używania gpg
jest to, że używa standardowych formatów OpenPGP, więc każde oprogramowanie szyfrujące, które obsługuje OpenPGP, będzie mogło je odszyfrować.
Za pomocą mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
-z
Opcja kompresuje. Domyślnie jest to plik o nazwie clear_text.gz.nc
.
Za pomocą bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt kompresuje się przed domyślnym szyfrowaniem, -r
opcja jest taka, że plik wejściowy nie jest usuwany w procesie. Plik wyjściowy jest wywoływany clear_text.bfe
domyślnie.
Korzystanie gzip
iaespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe to, jak to brzmi, program, który pobiera dane wejściowe na standardowe wejście i wysyła zaszyfrowane dane na standardowe wyjście. Nie obsługuje kompresji, więc możesz najpierw przesłać dane wejściowe przez gzip. Ponieważ wyjście przechodzi do standardowego wyjścia, będziesz musiał przekierować go do pliku o wybranej przez siebie nazwie. Prawdopodobnie nie jest to najskuteczniejszy sposób na zrobienie tego, o co prosisz, ale aespipe to wszechstronne narzędzie, więc pomyślałem, że warto o tym wspomnieć.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz