Tienes que aplicar la filosofía de Unix a esta tarea: una herramienta para cada tarea.
la compresión y la compresión son un trabajo para tar
y , gzip
o bzip2
crypto es un trabajo para gpg
o openssl
:
Encriptar
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Descifrar
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
O usando gpg
% gpg --encrypt out.tar.gz
La variante openssl utiliza encriptación simétrica, tendría que informar a la parte receptora sobre la 'contraseña' utilizada (también conocida como 'la clave'). la variante gpg usa una combinación de cifrado simétrico y asimétrico, usted usa la clave de la parte receptora (lo que significa que no tiene que decir ninguna contraseña involucrada a nadie) para crear una clave de sesión y encriptar el contenido con esa clave.
si va por la ruta zip (o 7z): esencialmente es lo mismo que la variante openssl, debe informarle a la parte receptora sobre la contraseña.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz
openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
Si su intención es solo proteger con contraseña los archivos, entonces use la utilidad zip manual a través de la línea de comando
-e pide a la utilidad zip que cifre los archivos mencionados en
Ejemplo de trabajo:
fuente
Aquí hay algunas maneras de hacer esto. Una cosa a tener en cuenta es que si va a utilizar herramientas de compresión y cifrado separadas, siempre debe comprimir antes del cifrado, ya que los datos cifrados son esencialmente no comprimibles.
Estos ejemplos comprimen y encriptan un archivo llamado
clear_text
.Utilizando
gpg
gpg comprimirá el archivo de entrada antes del cifrado de forma predeterminada,
-c
significa usar cifrado simétrico con una contraseña. El archivo de salida seráclear_text.gpg
. Una ventaja de usargpg
es que utiliza formatos estándar de OpenPGP, por lo que cualquier software de cifrado que admita OpenPGP podrá descifrarlo.Utilizando
mcrypt
La
-z
opción comprime. Por defecto, esto genera un archivo llamadoclear_text.gz.nc
.Utilizando
bcrypt
bcrypt comprime antes del cifrado de forma predeterminada, la
-r
opción es que el archivo de entrada no se elimine en el proceso. El archivo de salida se llamaclear_text.bfe
por defecto.Usando
gzip
yaespipe
aespipe es lo que parece, un programa que toma datos en stdin y genera datos cifrados aes en stdout. No admite compresión, por lo que puede canalizar la entrada a través de gzip primero. Como el resultado va a stdout, deberá redirigirlo a un archivo con el nombre que elija. Probablemente no sea la forma más efectiva de hacer lo que está pidiendo, pero aespipe es una herramienta versátil, así que pensé que valía la pena mencionarlo.
fuente
Puede usar 7zip para crear su archivo protegido con contraseña. Puede especificar la contraseña en la línea de comando (o en un script) de la siguiente manera:
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7zip también puede leer de STDIN de la siguiente manera:
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
Si es obligatorio usar archivos zip, es posible que desee jugar con el
-t<type>
parámetro (por ejemplo-tzip
).fuente
Ni tar, gzip ni bzip2 admiten la protección con contraseña. Utilice un formato de compresión que lo haga, como zip, o encripte con otra herramienta como GnuPG.
fuente
-r
.Crea con:
Le pedirá una contraseña.
Descifrar con:
fuente