Respuestas:
Creo que sería gpg. Sin embargo, la sintaxis de los archivos y directorios difiere.
Para archivos (salidas filename.gpg):
gpg -c filename
Para dirs:
gpg-zip -c -o file.gpg dirname
Para archivos (salidas filename.gpg):
gpg filename.gpg
Para dirs:
gpg-zip -d file.gpg
Editar: corregido cuando @ Mk12 señaló el error de compresión / descompresión para el cifrado / descifrado.
openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3
Descifrar:
openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar
aescrypt -e -p password file.jpg
Descifrar:
aescrypt -d -p password file.jpg.aes
Este es mi método usando openssl y tar
Directorio encriptado abierto:
openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault
Bloquear directorio cifrado:
tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault
rm -r
no elimina datos; simplemente lo desvincula. Tendrá que usar algo como srm
borrar los datos del disco.
Yo personalmente uso aescrypt
principalmente.
aescrypt -e "File"
y descifrar:
aescrypt -d "File"
O hay mcrypt:
mcrypt "File"
y descifrar:
mcrypt -d "File"
Y para un directorio, sugiero tar'ing el directorio y cifrar eso. Luego, después de descifrar, simplemente descomprime el archivo
tar -cf "Dir.tar" Dir/
y para deshacer
tar -xf "Dir.tar"
Si el nivel más alto de seguridad no es un gran problema (la página de manual de zip dice que el algoritmo de cifrado utilizado por las utilidades zipfile es más débil que PGP), entonces prefiero zip y descomprimir. Comprime mis directorios y encripta al mismo tiempo. Prefiero zip porque puedes tener una especie de zip incremental y cifrar en lugar de comprimir y cifrar todo de nuevo. Especialmente es útil cuando los tamaños de directorio son muy grandes.
ZIP y cifrar
zip file.zip file
zip -r directory.zip directory
zip --encrypt file.zip.enc file # prompt for password
zip --encrypt -r directory.zip.enc directory # prompt for password
Descomprimir y descifrar
unzip directory.zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.
unzip directory.zip.enc -d directory-new # prompts for password
Puede que no sea popular, pero he estado trabajando en un proyecto para cifrar / descifrar cualquier cosa con una mínima interacción del usuario mediante el uso de algunos scripts de Bash. Aquí hay un enlace a la publicación de Hak5 que explica la configuración para las pruebas.
Cortando las lógicas del código fuente, sin embargo, esto es lo que sucede para cada tipo de datos que puede manejar el proyecto vinculado anterior.
_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient user@host.domain"
_bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"
La ${_mapped_input}
variable se establece leyendo un mkfifo
archivo de canalización con nombre y configurando cualquier cosa leída en una matriz con la mapfile -t _lines < "${_file_to_map}"
que luego se expande y se guarda en un ${_mapped_input}
... un poco enrevesada pero permite que las características experimentales actúen en líneas individuales. Los resultados finales son un directorio para guardar archivos cifrados o directorios comprimidos y un archivo con varios paquetes de datos cifrados.
El descifrado de archivos o directorios comprimidos es bastante simple en un dispositivo con una clave privada relacionada con la clave pública utilizada para el cifrado. Pero el descifrado de los paquetes de datos cifrados de armadura múltiple fue un poco más difícil, por lo que hay un script nombrado Paranoid_Pipes_Scenario_One.sh
en el proyecto anterior escrito para hacerlo todo con una mínima interacción del usuario. A continuación se muestra una versión simplificada del código fuente de los scripts de ayuda para archivos y directorios cifrados normales.
_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"
Si desea ver qué otras funciones funcionan y se prueban de manera públicamente verificable, consulte los registros de compilación de Travis-CI (especialmente cerca del final de los registros) y verá que hay otras cosas elegantes en las que se trabaja en relación al cifrado y descifrado de casi cualquier dato.
Crea teclas One-Time Pad por sí mismo
java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
Contraseña:
Comenzó a encriptar 4 archivos totalmente 249,7 MiB
🔒 "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" -> "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4% 🔒 "/ .Ag. /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" -> "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" 95,7% 🔒 "/ Home / ron / Mi-Test-Directorio / Brother DSmobile 700d_uke_usr.pdf.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0" -> "88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E" 100,0%
Terminé de cifrar [4/4] archivos totalmente [249,7 MiB / 249,7 MiB] en 7,3 segundos (promedio: 34,2 MiB / s)
java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
Contraseña:
Comenzó a descifrar 4 archivos totalmente 124,9 MiB
🔓 "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" -> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" 32,8% 🔓 "/ Inicio / ron / Mi-test-Directorio / vídeo / Eerebegraafplaats.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" -> "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" 91,2% 🔓 "/ home / ron / Mi-test ./home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" -> "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" 100,0%
Terminé de descifrar [4/4] archivos totalmente [124,9 MiB / 124,9 MiB] en 3,4 segundos (promedio: 36,3 MiB / s)
Solo trato de ayudar a la comunidad ...