¿Hay una mejor manera de comprimir y luego encriptar archivos que no sean tar
seguidos por openssl
o gpg
?
tar
es la herramienta habitual para agrupar archivos. La llanura en tar
sí misma no se comprime. Existen herramientas separadas como gzip , bzip2 y xz (en orden creciente de relación de compresión en archivos típicos) que comprimen un archivo. Muchas tar
implementaciones, incluida GNU tar (la implementación normal en Linux), pueden comprimirse automáticamente con una opción ( -z
para gzip, -j
para bzip2, -J
para xz):
tar -cJf myarchive.tar.xz file1 file2 file3
Para cifrar un archivo, use gpg . Cree una clave y asóciela con su dirección de correo electrónico (los identificadores de clave GPG / PGP generalmente contienen una dirección de correo electrónico, aunque no es necesario). Cifre sus archivos, especificando su correo electrónico como el destinatario. Para descifrar un archivo, deberá ingresar la frase de contraseña para desbloquear su clave privada.
GPG también le permite encriptar un archivo con una contraseña. Esto es menos seguro y menos flexible. Es menos flexible porque necesita especificar la contraseña cuando se cifra (por ejemplo, no puede hacer copias de seguridad desatendidas). Es menos seguro porque la única seguridad es la contraseña, mientras que el cifrado basado en clave divide la seguridad entre la contraseña y la clave.
No use la openssl
herramienta de línea de comando. Es un escaparate para la biblioteca OpenSSL, no diseñado para uso en producción. Aunque puede hacer algunas cosas con él (en particular, tiene todas las primitivas necesarias para una autoridad de certificación básica), es difícil de usar correctamente y no tiene todo lo que necesita para hacer las cosas bien. Donde GPG le da una bicicleta, OpenSSL le da algunas barras de metal de varios tamaños y un par de cámaras de goma (tornillos y bomba no incluidos). Utiliza GPG.
tar
y gpg
en una tubería).
Puedes usar 7zip:
7z a -p -mhe=on stuff.7z MyStuff
^ ^ ^ ^ ^
| | | | `--- Files/directories to compress & encrypt.
| | | `--- Output filename
| | `--- Encrypt filenames
| `---- Use a password
`---- Add files to archive
Le pedirá una contraseña. Aparentemente usa AES-256 para el cifrado y SHA-256 de la contraseña y un contador repetido 512K veces para la derivación de clave.
Editar : esto no encripta los nombres de archivo, por lo que es posible que desee hacer tar
todo primero de todos modos.
Edición 2 : agregado -mhe=on
.
7za
, puede cifrar los nombres de los archivos con la -mhe=on
opción.
Por lo tanto, también puede usar los nombres de archivos de cifrado de 7zip:
7z a -p -mhe=on stuff.7z MyStuff
tar -z
es una ligera excepción porque es una práctica muy común.tar
versiones más nuevas admiten la compresión xz (bandera-J
) cuya relación de compresión suele ser mejor que la compresión gzip (-z
) o bzip2 (-j
) más tradicional .xz
es excelente. Recuerdo haber descargado el kernel y estaba comprimido a aproximadamente 1/7 de su tamaño original. Supongo quetar cvJf out.tar.xz file1 [file2...]
usaré gpg o openssl para encriptarlo. También noto que xz es muy rápido. ¿Cómo logra una mejor compresión que bz2 y sigue siendo rápido?