Answers:
我认为这将是gpg。文件和目录的语法有所不同。
对于文件(输出filename.gpg):
gpg -c filename
对于Dirs:
gpg-zip -c -o file.gpg dirname
对于文件(输出filename.gpg):
gpg filename.gpg
对于Dirs:
gpg-zip -d file.gpg
编辑:更正为@ Mk12指出加密/解密的压缩/解压缩错误。
openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3
解密:
openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar
aescrypt -e -p password file.jpg
解密:
aescrypt -d -p password file.jpg.aes
这是我使用openssl和tar的方法
打开加密目录:
openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault
锁定加密目录:
tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault
rm -r
不删除数据;它只是取消链接。您将需要使用类似的方法srm
来擦除磁盘上的数据。
如果最高的安全性不是一个大问题(zip的手册页说zipfile实用程序使用的加密算法比PGP弱),那么我更喜欢zip和unzip。它压缩我的目录并同时加密。我更喜欢zip,因为您可以使用一种增量zip并进行加密,而不是再次对整个内容进行zip和加密。当目录大小很大时,它尤其有用。
ZIP和加密
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
解压缩和解密
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
可能并不流行,但我一直在致力于通过使用一些Bash脚本以最少的用户交互来加密/解密任何内容的项目。这是指向Hak5帖子的链接,该链接解释了测试的设置。
贯穿源代码逻辑,尽管上面链接的项目可以处理的每种数据类型都会发生以下情况
_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}"
${_mapped_input}
通过读取mkfifo
命名管道文件并将任何读取的内容设置为数组,mapfile -t _lines < "${_file_to_map}"
然后将其扩展并保存到${_mapped_input}
...有点费解,即可设置该变量,但是它允许实验功能作用于单独的行。最终结果是,您最终得到一个用于存放加密文件或压缩目录的目录,以及一个包含各种加密数据包的文件。
在具有与用于加密的公钥相关的私钥的设备上,文件或压缩目录的解密非常简单。但是解密多个装甲加密的数据包要困难一些,因此Paranoid_Pipes_Scenario_One.sh
在上面的项目中编写了一个脚本,该脚本可以在用户交互最少的情况下完成所有操作。下面是普通脚本加密文件和目录的帮助程序脚本源代码的简化版本。
_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}"
如果您希望查看还有哪些其他功能正在以可公开验证的方式工作和测试,请查看Travis-CI构建日志(尤其是日志末尾),您会发现还有一些其他花哨的东西正在处理中几乎可以加密和解密任何数据。
它自己创建一次性键盘按键
java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
密码:
总共开始加密4个文件249,7 MiB
🔒“ /home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit” SHA✔🖆✔🔒✔℄✔🗑✔SHA-256:“ C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947A7E7F4A9E7F7E7F7E7F43E7F7A7E7F43E7A7E7F7A7E7F7E7E7F4E7E7F7E7E7F7E7E7E7E7E7E7E7F7E7E4E7E4E7E4E7E7E3E7E3E7E3E4E3E4E7E3E4E7E3E4E7E54E7E7E54E7E7E4E7E4E7E7E7E7E7E7A54E7B home / ron /我的测试目录/视频/castle-waxjo-sweden.mp4.bit“🗝✔🖆✔🔒℄✔✔✔SHA-256:” 8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810“->” 323618B2ED8A9F92F92F9F92F92F9F92F9F92F9F9F9F0F0F0F0F“ /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit”🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: “0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE” - > “266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C” 95,7%🔒 ”/家庭/罗恩/我的试验目录/兄弟dsmobile 700d_uke_usr.pdf.bit”🗝✔🖆✔🔒✔℄✔🗑✔SHA-256: “8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0” - > “88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E” 100,0%
在7.3秒内完成对[4/4]文件的完全加密[249,7 MiB / 249,7 MiB](平均:34,2 MiB / s)
java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
密码:
开始总共解密4个文件124,9 MiB
🔓“ /home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4”🖃✔🔓✔℄✔🗑✔SHA-256:“ 323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE”->“ 8AEB974A761AFA6A1FA2AFA76A1A1FA2FA2FA1160AFA2FA6160A1FA2FA2FA2160A541AA2160A54A1160AAA6160A1160F home / ron /我的测试目录/视频/Eerebegraafplaats.mp4“🖃✔🔓✔℄✔🗑✔SHA-256:” D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA“->” C1E3F3A399A9B9A9FA9B9A9FA7A9FA9A9FA9A9FE54A09A9FA7A9A54A9A9FE4A0A9FA0A9FE0A0F0A0F9A9F9A9A9FE -Directory / Brother dsmobile 700d_uke_usr.pdf“ SHA-256:🖃✔🔓✔℄✔🗑✔”“ 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E”->“ 8D718D2F29EF05BB347D6920968/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf”🖃✔🔓✔℄✔🗑✔SHA-256: “266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C” - > “0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE” 100,0%
在3,4秒内完成总共[124,9 MiB / 124,9 MiB]解密[4/4]文件(平均:36,3 MiB / s)
只是想帮助社区...