温馨提示×

怎么用linux openssl解密

小樊
34
2026-09-16 18:12:13
栏目: 云计算

在 Linux 下使用 OpenSSL 解密,具体命令取决于你当初是用什么方式加密的(算法、密码、是否有盐、文件格式等)。下面按常见场景给你说明。


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

1️⃣ 解密用 openssl enc 加密的文件

如果你是用类似下面命令加密的:

openssl enc -aes-256-cbc -salt -in file.txt -out file.txt.enc

那么解密命令是:

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

执行后会提示输入密码:

enter aes-256-cbc decryption password:

✅ 解密成功,原文件恢复


2️⃣ 直接在命令里带密码(不推荐,但可用)

openssl enc -d -aes-256-cbc -in file.txt.enc -out file.txt -pass pass:你的密码

二、解密 Base64 + 加密文件

如果加密时用了 -base64

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

解密:

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

三、RSA 私钥加密 / 解密

1️⃣ 用 RSA 私钥解密

如果你有私钥 private.pem,且数据是用对应公钥加密的:

openssl pkeyutl -decrypt -in encrypted.bin -inkey private.pem -out decrypted.txt

2️⃣ 旧方式(不推荐但常见)

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

四、解密 PEM 中的加密私钥

如果你有一个加密的私钥

-----BEGIN ENCRYPTED PRIVATE KEY-----

解密成普通私钥:

openssl pkey -in enc.key -out dec.key

或旧命令:

openssl rsa -in enc.key -out dec.key

输入密码后即可。


五、常见错误排查

❌ 报错:bad magic number

原因:

  • 算法不对
  • 文件不是 enc 加密的
  • base64 没加/多加

✅ 解决:确认加密命令和参数完全一致


❌ 报错:digital envelope routines::unsupported

原因(OpenSSL 3.x):

  • 旧算法被禁用

✅ 解决(兼容模式):

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

或:

OPENSSL_CONF=/dev/null openssl enc ...

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

你可以告诉我:

  1. 加密命令是什么(或你只知道算法)
  2. 文件扩展名(.enc / .pem / .bin
  3. 是否需要密码
  4. Linux OpenSSL 版本(openssl version

我可以直接给你精确可用的解密命令

0