温馨提示×

OpenSSL在Linux怎么解密数据

小樊
36
2026-08-13 21:39:12
栏目: 云计算

在 Linux 下用 OpenSSL 解密数据,常见场景有几种,下面按最常用方式给你说明,并附示例。你可以对照自己的情况使用。


一、使用 OpenSSL 解密(对称加密,最常见)

1️⃣ 使用 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

二、指定密码(非交互)

使用 -pass

openssl enc -aes-256-cbc -d \
  -in file.txt.enc \
  -out file.txt \
  -pass pass:123456

⚠️ 注意:这种方式密码会出现在命令历史中,不安全。


三、使用 Base64 编码的数据解密

如果加密时用了 -base64

openssl enc -aes-256-cbc -d -base64 -in file.enc -out file.txt

四、解密 PEM / 私钥 / 证书

1️⃣ 解密受密码保护的私钥

openssl rsa -in encrypted.key -out decrypted.key

或(新格式):

openssl pkey -in encrypted.key -out decrypted.key

五、解密 HTTPS / SSL 抓包数据(高级)

如果你有:

  • TLS 握手数据
  • 服务器私钥

可用:

openssl rsautl -decrypt -in encrypted.bin -inkey server.key

⚠️ 仅适用于 RSA 密钥交换(非 DH/ECDHE)


六、常见错误及解决

❌ 错误:bad decrypt

原因:

  • 密码错误
  • 算法不匹配
  • 数据损坏

✅ 解决:

  • 确认加密和解密算法一致
  • 确认是否使用了 -salt
  • 不要混用 encrsautl

七、查看支持的算法

openssl enc -ciphers

八、快速判断你该用哪种方式

场景 命令
文件对称加密 openssl enc -d
RSA 私钥 openssl rsa -in
HTTPS 解密 openssl rsautl
Base64 密文 openssl enc -d -base64

如果你愿意,可以把加密方式或密文格式贴出来(不用贴真实数据),我可以帮你精确给出解密命令。

0