Answers:
GnuPG(GPG)可以使用非对称和对称加密。非对称加密涉及两个密钥,一个用于加密的公钥和一个用于解密的私钥。有关非对称密钥用法,请参阅此页面上的djeikyb答案。
对于对称加密,加密和解密密钥相等。重要的是要意识到大多数人都很难选择强密码。因此,使用密码的加密方案应使用密钥派生功能,该功能需要更多资源(时间,内存)来减慢暴力攻击的速度。
有关GnuPG的KDF的说明,请参阅此Crypto Stack Exchange帖子。对称加密的用法示例:
gpg --symmetric < unencrypted_file > encrypted_file
解密:
gpg --decrypt < encrypted_file > decrypted_file
请注意,gpg
默认情况下会缓存symkey(已记录的行为)。为了避免这种情况,请使用相关答案中--no-symkey-cache
所述的选项。
能够选择正确密钥的用户的旧答案,请参见下面的注释
对于单个文件,openssl
这非常有用,尤其是在通过不安全的通道(例如电子邮件)发送文件时。它是免费的(金钱和自由),与Truecrypt不同,Truecrypt只是免费的。
注意:您在此处输入的密码将由一个MD5迭代1处理。如果您选择密码“ 123456”,那么您的安全性将很小。
加密:
openssl aes-256-cbc -salt -in unencrypted_file -out encrypted_file
系统将要求您输入密码,您必须输入两次。
解密:
openssl aes-256-cbc -d -in encrypted_file -out unencrypted_file
enc程序的手册页。
1 openssl enc
使用-md
选项(默认为md5)定义的摘要函数,并调用EVP_BytesToKey()
迭代计数为1的函数。可以在openssl源代码中找到该函数apps/enc.c
。
-a
base64编码输入(的别名-base64
),要对其解密,还需要添加该-a
选项。
我为此使用Seahorse。它是GnuPG的Gnome前端,并与鹦鹉螺很好地集成:
要获得nautilus集成,请seahorse-nautilus
从软件中心安装软件包:seahorse-nautilus
cli方法可以是GnuPG,也可以是tar。这是一个简短的参考指南,您确实应该阅读文档。
首先运行gpg --gen-key
。按照提示生成您的公钥/私钥对。现在您可以加密文件了:gpg -e foo.txt
。这将创建一个名为的文件foo.txt.gpg
。GnuPG不会删除原始的未加密文件,这取决于您是否希望它徘徊。要解密foo.txt.gpg,请运行gpg foo.txt.gpg
。解密将在覆盖现有文件之前提示您。
如果需要加密目录,请先将其压缩:
tar -cf foo.tar foo/
gpg -e foo.tar
您可以根据需要重命名加密文件。解密后,将保留原始文件名。
还有eCryptfs,Ubuntu用来加密家庭目录。
您可以在安装时选择主目录加密,或者$HOME/Private
默认情况下可以使用ecryptfs-setup-private实用程序设置单个目录。可以将该文件夹配置为在登录时自动挂载,在注销时自动挂载。$HOME/Private
递归地加密其中的每个文件和文件夹。
您也可以通过wxWidgets GUI使用“学术签名”来使用椭圆曲线加密。它是开源的,但不在存储库中。它主要执行ECC非对称加密,签名和时间戳。但是该工具还有一个菜单项,用于调用Gnupg(RSA)并直接访问提供AES和其他算法的文件的对称加密/解密。它的主页在这里:https : //www.academic-signature.org
我经常使用它来保护传输中的文件和对学术文件进行数字签名(成绩单,推荐信,成绩单等)。
openssl aes-256-cbc ...
您知道if [ $? -ne 0 ] ; then... fi
可以使用||
吗?而且有些人认为OpenSSL “ *在去年[ Heartbleed ]中曾有几个主要的安全漏洞,而Snowden文件显示GPG是少数在正确使用时可能会破坏NSA的程序之一。OpenSSL代码也是一个完整的污水池,并且测试范围很糟糕。(公开:[他]在“ OpenSSL很烂;让我们修复它”项目上工作。)– jbarlow *”