我想使用 AES-256 加密文件。如何快速轻松地完成此操作?我(或其他人)如何再次解密?
答案1
不幸的是,没有简单的解决方案来保护您的资料。考虑一下您的用例,也许除了普通的 AES 之外还有其他更适合的方法。
- 使用密码管理器,例如密码钥匙圈
- 加密你的主目录(使用 Ubuntu 安装程序非常容易完成)
- 使用 GPG如果你想通过电子邮件安全沟通
- OTR 与 Pidgin如果你想要安全的即时通讯
- 使用 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
您可以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 个字节!如果您要与其他人传输文件,您的共享密钥应该非常强大。您可以使用此网站来了解您的密码有多强:
- https://www.grc.com/haystack.htm(这没有考虑到任何字典攻击!)
- http://howsecureismypassword.net(这至少可以检查常用密码)
警告:我已检查过这些网站不会将您的密码发送到服务器,但这种情况随时可能发生变化。使用这些网站和开发工具/检查器,在输入强密码之前检查它们是否发送了任何内容。
答案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:~$