Ecco alcuni modi per farlo. Una cosa da notare è che se hai intenzione di usare strumenti di compressione e crittografia separati dovresti sempre comprimere prima della crittografia, poiché i dati crittografati sono essenzialmente non comprimibili.
Questi esempi comprimono e criptano un file chiamato clear_text
.
Usando gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg comprimerà il file di input prima della crittografia per default, -c
significa usare la crittografia simmetrica con una password. Il file di output sarà clear_text.gpg
. Un vantaggio dell'uso di gpg
è che usa formati standard OpenPGP, quindi qualsiasi software di crittografia che supporti OpenPGP sarà in grado di decifrarlo.
Usando mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
L'opzione -z
comprime. Per default questo produce un file chiamato clear_text.gz.nc
.
Using bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt comprime prima di criptare per default, l'opzione -r
è così che il file di input non viene cancellato nel processo. Il file di output è chiamato clear_text.bfe
per impostazione predefinita.
Usando gzip
e 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 è quello che sembra, un programma che prende input su stdin e produce dati criptati aes su stdout. Non supporta la compressione, quindi potete far passare l'input attraverso gzip prima. Poiché l'output va su stdout dovrete reindirizzarlo a un file con un nome di vostra scelta. Probabilmente non è il modo più efficace per fare quello che stai chiedendo, ma aespipe è uno strumento versatile e ho pensato che valesse la pena menzionarlo.