在 Linux 环境下,文本文件的加密与解密有多种成熟工具可供选择。下面系统梳理几种主流方案,从经典的 GnuPG 到轻量的 OpenSSL,再到广为人知的 7‑Zip,每种方法都有其独特的适用场景。
使用 GnuPG(GPG)进行加密和解密
GnuPG(常简称为 GPG)是开源加密领域的事实标准,它遵循 OpenPGP 协议,既能保护通信内容,也能为文件提供可靠锁护。大多数 Linux 发行版已预装此工具,如需手动安装,操作如下:
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install gpg
# Fedora/RHEL
sudo yum install gnupg2
# Arch
sudo pacman -S gnupg2
生成密钥对
gpg --full-generate-key
根据提示依次输入你的姓名、邮箱地址,并设置一个强度足够高的密码短语。这一步骤是后续所有加密操作的基础。
导出公钥
gpg --export -a "Your Name" > publickey.asc
将 "Your Name" 替换为你生成密钥时使用的名称或邮箱,这样导出的公钥就可以分发给他人,使其能够向你发送加密消息。
导入公钥
gpg --import publickey.asc
当你获得其他人的公钥时,使用此命令导入,之后即可向其发送加密文件。
加密文件
gpg --output encrypted_file.gpg --encrypt --recipient "Your Name" file_to_encrypt.txt
注意,--recipient 指定的是接收者的名称或邮箱,加密后的文件默认以 .gpg 结尾。
解密文件
gpg --output decrypted_file.txt --decrypt encrypted_file.gpg
输入之前设置的密码短语,原文件即可完整恢复。整个过程清晰透明,非常可靠。
使用 OpenSSL 进行加密和解密
OpenSSL 本质上是一个加密库,但其命令行工具同样能快速实现文件加解密,特别适合临时性的对称加密需求。
加密文件
openssl enc -aes-256-cbc -salt -in file_to_encrypt.txt -out encrypted_file.enc
执行后系统会提示你输入一个密码。注意,此密码必须牢记,因为 OpenSSL 不像 GPG 那样具备密钥对管理机制。
解密文件
openssl enc -d -aes-256-cbc -in encrypted_file.enc -out decrypted_file.txt
输入相同的密码即可完成解密。方法简单直接,适用于对单个文件进行快速保护。
使用 7‑Zip 进行加密和解密
7‑Zip 虽以压缩工具闻名,但也支持 AES 加密,许多系统管理员习惯用它打包并加密敏感数据。
安装 7‑Zip
# Debian/Ubuntu
sudo apt-get update && sudo apt-get install p7zip-full
# Fedora/RHEL
sudo yum install p7zip p7zip-plugins
# Arch
sudo pacman -S p7zip
加密文件
7z a -t7z -mhe=on -pYourPassword archive.7z file_to_encrypt.txt
参数 -mhe=on 用于启用文件头加密,这样压缩包内的文件名也会被隐藏,安全性更高。建议将 -pYourPassword 替换为你的实际密码,或者省略 -p 参数,让系统在交互中提示输入,避免密码明文暴露。
解密文件
7z x -t7z -pYourPassword archive.7z -ooutput_directory
输入正确密码后,文件将被解压到指定的输出目录中。
注意事项
- 安全性:密钥与密码的复杂度直接决定整体安全水平。切勿使用“123456”这类弱口令,也不应与重要账户共用同一密码。
- 备份:加密操作前务必备份原始文件——一旦密码输入错误或加密过程出现意外,备份能提供最后保障。
- 权限:加密文件本身并不能阻止他人复制或删除,因此还需配合文件系统权限控制来进一步限制访问范围。
这三种方法覆盖了从非对称加密到对称加密,再到压缩加密的常见 Linux 文件加密需求。具体选择哪种工具,取决于你是用于长期通信还是临时保护文件。动手实践几遍,很快就能掌握其中的门道。
