在 Linux 下用 OpenSSL 解密数据,常见场景有几种,下面按最常用方式给你说明,并附示例。你可以对照自己的情况使用。
aes-256-cbc 解密(示例)如果你之前是这样加密的:
openssl enc -aes-256-cbc -salt -in file.txt -out file.txt.enc
那么解密命令是:
openssl enc -aes-256-cbc -d -in file.txt.enc -out file.txt
| 参数 | 含义 |
|---|---|
-aes-256-cbc |
加密算法 |
-d |
解密 |
-in |
输入文件 |
-out |
输出文件 |
-k |
指定密码(不推荐,会留历史) |
-pass |
更安全的方式指定密码 |
✅ 推荐方式(交互输入密码):
openssl enc -aes-256-cbc -d -in file.txt.enc -out file.txt
-passopenssl enc -aes-256-cbc -d \
-in file.txt.enc \
-out file.txt \
-pass pass:123456
⚠️ 注意:这种方式密码会出现在命令历史中,不安全。
如果加密时用了 -base64:
openssl enc -aes-256-cbc -d -base64 -in file.enc -out file.txt
openssl rsa -in encrypted.key -out decrypted.key
或(新格式):
openssl pkey -in encrypted.key -out decrypted.key
如果你有:
可用:
openssl rsautl -decrypt -in encrypted.bin -inkey server.key
⚠️ 仅适用于 RSA 密钥交换(非 DH/ECDHE)
bad decrypt原因:
✅ 解决:
-saltenc 和 rsautlopenssl enc -ciphers
| 场景 | 命令 |
|---|---|
| 文件对称加密 | openssl enc -d |
| RSA 私钥 | openssl rsa -in |
| HTTPS 解密 | openssl rsautl |
| Base64 密文 | openssl enc -d -base64 |
如果你愿意,可以把加密方式或密文格式贴出来(不用贴真实数据),我可以帮你精确给出解密命令。