温馨提示×

linux openssl怎么解密数据

小樊
45
2026-07-15 00:49:19
栏目: 云计算

在 Linux 下使用 OpenSSL 解密数据,常见场景主要分为三类:对称加密解密非对称(RSA)解密验证/解密证书/私钥。下面按常见用法给你说明。


一、对称加密解密(最常见)

1️⃣ AES 解密(以 AES-256-CBC 为例)

如果你有:

  • 加密后的文件:enc.dat
  • 密钥(或密码)
  • 加密算法:aes-256-cbc

解密命令:

openssl enc -d -aes-256-cbc -in enc.dat -out dec.txt

参数说明:

  • -d:解密
  • -aes-256-cbc:算法(加密时用的什么,这里就用什么)
  • -in:输入文件
  • -out:输出文件
  • 会提示输入密码

指定密码(不推荐,但可用):

openssl enc -d -aes-256-cbc -in enc.dat -out dec.txt -k 123456

二、RSA 非对称解密

2️⃣ 使用 RSA 私钥解密

场景:

  • 公钥加密
  • 私钥解密

解密命令:

openssl rsautl -decrypt -in encrypted.dat -out decrypted.txt -inkey private.pem

常用参数:

  • -decrypt:解密
  • -inkey:私钥文件
  • -in:加密数据
  • -out:解密结果

⚠️ 注意:

  • rsautl 只能解密 小数据(通常 < 245 字节,取决于密钥长度)
  • 实际中一般用于解密 对称密钥

三、解密 PEM / 私钥 / 证书

3️⃣ 解密加密的私钥(常见)

私钥是加密的(有 ENCRYPTED):

openssl rsa -in encrypted_key.pem -out decrypted_key.pem

执行后会提示输入密码。


四、Base64 + 解密(常见组合)

4️⃣ 先 base64 解码再解密

base64 -d encrypted.b64 | openssl enc -d -aes-256-cbc -out dec.txt

或:

openssl enc -d -aes-256-cbc -in <(base64 -d encrypted.b64) -out dec.txt

五、查看加密信息(不解密)

5️⃣ 查看加密算法

openssl enc -list

六、常见错误排查

❌ 错误:bad decrypt

原因:

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

❌ 错误:RSA operation error

原因:

  • 数据不是用对应公钥加密的
  • 数据太长

七、示例总结

场景 命令
AES 解密 openssl enc -d -aes-256-cbc -in x -out y
RSA 解密 openssl rsautl -decrypt -inkey priv.pem
私钥解密 openssl rsa -in enc.pem -out dec.pem
base64 解密 base64 -d file

如果你愿意,可以把具体加密方式 / 文件格式 / 报错信息发出来,我可以直接帮你写精确的解密命令

0