当前位置: 首页>>技术教程>>正文


如何使用AES快速加密文件?

, ,

问题描述

我想使用AES-256加密文件。我怎样才能快速轻松地做到这一点,我怎么能 – 或其他人 – 再次解密呢?

最佳解决方法

不幸的是,没有简单的解决方案来保护你的东西。考虑一下你的use-case,可能除了普通的AES之外更适合。


如果您想要非常简单的平台独立加密,可以使用openssl。

请注意:你可以用这个来隐藏你室友的birthday-gift-ideas.txt,但是不要指望它对一个坚定的攻击者来说是安全的!

  1. 正如评论中指出的那样,此方法使用了一个天真的密钥派生函数,因此您的密码必须非常好才能让您有机会获得安全。

  2. 此外,此方法不会对密文进行身份验证,这意味着攻击者可以在不注意的情况下修改或破坏内容。

  3. 对于许多类型的安全性,加密是不够的(例如,您不能仅使用加密来安全地进行通信)

如果你还想使用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个字节!如果您要与其他人一起传输文件,您的共享秘密应该非常强大。您可以使用此站点了解您的密码有多好:

警告:我已检查过这些网站没有将您的密码发送到服务器,但可以随时更改。将这些网站与开发工具/检查员一起使用,并在输入强密码之前检查他们是否发送了任何内容。

次佳解决方法

我喜欢使用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”和“其他选项/密码”。

encryption,openssl,ubuntu

要解密,请右键单击.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:~$

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1081.html,未经允许,请勿转载。