在 Linux 下使用 OpenSSL 解密,具体命令取决于你当初是用什么方式加密的(算法、密码、是否有盐、文件格式等)。下面按常见场景给你说明。
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:
✅ 解密成功,原文件恢复
openssl enc -d -aes-256-cbc -in file.txt.enc -out file.txt -pass pass:你的密码
如果加密时用了 -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
如果你有私钥 private.pem,且数据是用对应公钥加密的:
openssl pkeyutl -decrypt -in encrypted.bin -inkey private.pem -out decrypted.txt
openssl rsautl -decrypt -in encrypted.bin -inkey private.pem -out decrypted.txt
如果你有一个加密的私钥:
-----BEGIN ENCRYPTED PRIVATE KEY-----
解密成普通私钥:
openssl pkey -in enc.key -out dec.key
或旧命令:
openssl rsa -in enc.key -out dec.key
输入密码后即可。
bad magic number原因:
enc 加密的✅ 解决:确认加密命令和参数完全一致
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 ...
你可以告诉我:
.enc / .pem / .bin)openssl version)我可以直接给你精确可用的解密命令。