问题描述
我想使用AES-256加密文件。我怎样才能快速轻松地做到这一点,我怎么能 – 或其他人 – 再次解密呢?
最佳解决方法
不幸的是,没有简单的解决方案来保护你的东西。考虑一下你的use-case,可能除了普通的AES之外更适合。
-
使用密码管理器,如Keyring for passwords
-
Encrypt your home directory(非常容易使用Ubuntu安装程序)
-
如果您想通过电子邮件安全地进行通信,请使用Use GPG
-
如果您想要安全的即时消息,请使用OTR with Pidgin
-
Use Cryptocat用于安全聊天
如果您想要非常简单的平台独立加密,可以使用openssl。
请注意:你可以用这个来隐藏你室友的birthday-gift-ideas.txt,但是不要指望它对一个坚定的攻击者来说是安全的!
-
正如评论中指出的那样,此方法使用了一个天真的密钥派生函数,因此您的密码必须非常好才能让您有机会获得安全。
-
此外,此方法不会对密文进行身份验证,这意味着攻击者可以在不注意的情况下修改或破坏内容。
-
对于许多类型的安全性,加密是不够的(例如,您不能仅使用加密来安全地进行通信)
如果你还想使用openssl:
-
加密:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
-
解密:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
您可以通过加密和解密使用-a
开关对base64
进行openssl编码。这样,您可以将密文粘贴到电子邮件中。它看起来像这样:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
请注意,您可以选择密码和操作模式。对于正常使用,我建议在CBC模式下使用256。这些是您可用的密码模式(仅计算AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
也可以看看:
请注意:
OpenSSL会要求您输入密码。这不是加密密钥,它不限于32个字节!如果您要与其他人一起传输文件,您的共享秘密应该非常强大。您可以使用此站点了解您的密码有多好:
-
https://www.grc.com/haystack.htm(这不考虑任何字典攻击!)
-
http://howsecureismypassword.net(至少检查常用密码)
警告:我已检查过这些网站没有将您的密码发送到服务器,但可以随时更改。将这些网站与开发工具/检查员一起使用,并在输入强密码之前检查他们是否发送了任何内容。
次佳解决方法
我喜欢使用gpg
命令:
加密:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
速记:
gpg --cipher-algo AES256 -c filename.tar.gz
这将要求密码。
解密:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
速记:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
您还可以将cipher-algo AES256
添加到~/.gnupg/gpg.conf
以使AES256成为默认值。 (根据联机帮助页,它是CAST5)
第三种解决方法
7z(使用密码选项时)使用256位AES加密(使用SHA256键拉伸)。
安装它(p7zip-full
),右键单击要加密的文件或目录,然后选择“压缩”,“。7z”和“其他选项/密码”。
要解密,请右键单击.7z文件,然后选择Extract here。
第四种方法
aescrypt
链接的网站包含一个open-source 256位aes加密/解密工具,并且是多平台 – MacO,Windows,Linux和其他通过Java。
加密:aescrypt -e <file>
解密:aescrypt -d <file>
您可以使用以下语法备份和加密主文件夹:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
ubuntu安装
Download and extract the source
make
sudo make install
其他平台
从网站下载二进制文件或source-code。
第五种方法
我已经提出了很多我建议的建议。基本上,openssl实际上是加密文件或脚本的最简单方法。但是,我会警告不要使用AES-256,因为它在某些平台上的所有openssl版本中都不可用。大多数较新的操作系统……即。 Linux有它。但是其他如AIX 5.3没有(我认为HP-UX也是如此)。如果您打算在不同平台上使用您的文件或脚本,我强烈建议您使用AES-128,因为它随处可用。
如何使用AES-128“快速轻松地”加密文件?
像www.ShellScrypt.com这样的网站使用openssl AES-128来加密shell脚本,然后使脚本的加密副本可执行。您所要做的就是将脚本粘贴到站点,然后将为您生成一个zip文件。该zip文件将包含文件的加密(如果是脚本,则为可执行文件)版本。这使您可以对”easily”和”conveniently”加密文件/脚本,而不必满足您打算使用该脚本的每个系统上的任何包或模块要求,或者运行几个复杂且令人困惑的openssl命令。
下面显示的是使用AES-128的基本加密/解密openssl命令:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$