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

Ste*_*zzo 90 encryption openssl

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

Ste*_*zzo 101

不幸的是,没有简单的解决方案来保护您的东西。想想你的用例,也许比普通 AES 更适合的东西。


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

请注意:您可以使用它向室友隐藏生日礼物的想法.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

您可以base64通过使用-a加密和解密开关来获取 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=
Run Code Online (Sandbox Code Playgroud)

请注意,您可以选择密码和操作模式。对于正常使用,我建议在 CBC 模式下使用 aes 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
Run Code Online (Sandbox Code Playgroud)

也可以看看:

请注意:

OpenSSL 会要求您输入密码。这不是加密密钥,它不限于 32 个字节!如果您要与其他人传输文件,则您的共享机密应该非常强大。您可以使用此站点来了解您的密码有多好:

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

  • `openssl aes-256-cbc` 比 `openssl enc -aes-256-cbc` 短并且也能工作。可以通过运行“man enc”来获得此手册页。切勿将 `ecb` 用于不应被调和的数据,始终使用 `cbc`。`-salt` 是多余的,因为它是默认的。如果省略`-out filename`,输出将被写入标准输出,这在您只需要分析数据而不是将其写入磁盘时非常有用。下一个命令显示明文的行数:`openssl aes-256-cbc -d -in filename | wc -l`。(另一个用途,读取文件:`openssl aes-256-cbc -d -in filename | less`) (9认同)
  • -1 用于推荐低级 OpenSSL 使用。它不提供任何 HMAC 功能,正如@Lekensteyn 指出的那样,它缺乏适当的 KDF。 (2认同)

scr*_*rrr 41

我喜欢使用gpg命令:

加密:

gpg --cipher-algo AES256 --symmetric filename.tar.gz
Run Code Online (Sandbox Code Playgroud)

速记:

gpg --cipher-algo AES256 -c filename.tar.gz
Run Code Online (Sandbox Code Playgroud)

这将要求输入密码。

解密:

gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
Run Code Online (Sandbox Code Playgroud)

速记:

gpg -o filename.tar.gz -d filename.tar.gz.gpg
Run Code Online (Sandbox Code Playgroud)

您还可以添加cipher-algo AES256~/.gnupg/gpg.conf使 AES256 成为默认值。(根据联机帮助页它是CAST5

  • +1。另请注意,在使用 AES 时,GnuPG 还为您提供消息身份验证 (HMAC)(在撰写本文时,OpenSSL 缺乏投票最多的答案)。背景信息:http://superuser.com/a/633716/157409 (2认同)

arr*_*nge 20

7z(当使用密码选项时)使用 256 位 AES 加密(使用 SHA256密钥扩展)。

安装它 ( p7zip-full),右键单击要加密的文件或目录,然后选择Compress.7zOther options / Password

在此处输入图片说明

对于解密,右键单击.7z文件并选择Extract here


fos*_*dom 6

加密

链接的网站包含一个开源的 256 位 aes 加密/解密工具,并且是多平台的——MacOs、Windows、Linux 和其他通过 Java 的。

加密: aescrypt -e <file>

解密: aescrypt -d <file>

您可以使用以下语法备份和加密您的主文件夹:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
Run Code Online (Sandbox Code Playgroud)

ubuntu 安装

下载并解压源

make
sudo make install
Run Code Online (Sandbox Code Playgroud)

其他平台

从网站下载二进制文件或源代码。