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

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

我想使用 AES-256 加密文件。如何快速轻松地完成此操作?我(​​或其他人)如何再次解密?

答案1

不幸的是,没有简单的解决方案来保护您的资料。考虑一下您的用例,也许除了普通的 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

您可以base64使用加密和解密开关让 openssl 对消息进行 -encode -a。这样,您可以将密文粘贴到电子邮件中。它看起来像这样:

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 模式下使用 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

也可以看看:

请注意:

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

警告:我已检查过这些网站不会将您的密码发送到服务器,但这种情况随时可能发生变化。使用这些网站和开发工具/检查器,在输入强密码之前检查它们是否发送了任何内容。

答案2

我喜欢使用以下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

答案3

7z(当。。。的时候密码选项使用)使用 256 位 AES 加密(使用 SHA256按键拉伸)。

安装它(p7zip-full),右键单击要加密的文件或目录,然后选择压缩.7z其他选择/密码

在此处输入图片描述

要解密,请右键单击.7z文件并选择摘录自此处

答案4

我提出的许多建议已经在这个帖子中提出过了。基本上,openssl 确实是加密文件或脚本最简单的方法。不过,我建议不要使用AES-256只是因为它并非在所有版本的 openssl 中都可用一些平台。大多数较新的操作系统(例如 Linux)都有它。但其他操作系统(例如 AIX 5.3)没有(我认为 HP-UX 也是如此)。如果您打算跨不同平台使用文件或脚本,我强烈建议您使用AES-128因为它随处可用。

如何“快速轻松地”使用 AES-128 加密文件?

类似这样的网站www.ShellScrypt.com使用 openssl AES-128 加密 shell 脚本,然后使脚本的加密副本可执行。您只需将脚本粘贴到网站,系统就会为您生成一个 zip 文件。该 zip 文件将包含文件的加密版本(如果是脚本,则为可执行版本)。这允许您“容易地“ 和 ”方便地“加密文件/脚本,而不必满足您打算使用该脚本的每个系统上的任何包或模块要求,也不必运行几个复杂且令人困惑的 openssl 命令。

下面显示的是基本加密/解密 openssl使用 AES-128 的命令:

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:~$

相关内容