Ecco alcuni modi per farlo. Una cosa da notare è che se si utilizzano strumenti di compressione e crittografia separati, è necessario comprimere sempre prima della crittografia, poiché i dati crittografati sono essenzialmente non comprimibili.
Questi esempi comprimono e crittografano un file chiamato clear_text
.
utilizzando gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg comprime il file di input prima della crittografia per impostazione predefinita, -c
significa utilizzare la crittografia simmetrica con una password. Il file di output sarà clear_text.gpg
. Uno dei vantaggi dell'utilizzo gpg
è l'utilizzo dei formati OpenPGP standard, quindi qualsiasi software di crittografia che supporta OpenPGP sarà in grado di decrittografarlo.
utilizzando mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
L' -z
opzione si comprime. Per impostazione predefinita, questo genera un file chiamato clear_text.gz.nc
.
utilizzando bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt comprime prima della crittografia per impostazione predefinita, l' -r
opzione è in modo che il file di input non venga eliminato nel processo. Il file di output viene chiamato clear_text.bfe
per impostazione predefinita.
Utilizzando gzip
eaespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe è come suona, un programma che accetta input su stdin e genera dati crittografati su stdout. Non supporta la compressione, quindi è possibile reindirizzare l'input tramite gzip. Poiché l'output va su stdout, dovrai reindirizzarlo su un file con un nome di tua scelta. Probabilmente non è il modo più efficace per fare ciò che stai chiedendo, ma aespipe è uno strumento versatile, quindi ho pensato che valesse la pena menzionarlo.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz