使用OpenSSL(RSA-2048公钥/私钥)对已不对称加密(AES-256)的Java文件进行解密

使用OpenSSL(RSA-2048公钥/私钥)对已不对称加密(AES-256)的Java文件进行解密,java,encryption,openssl,aes,rsa,Java,Encryption,Openssl,Aes,Rsa,我知道这很难。。。但我使用OpenSSL以非常标准的方式加密文件。该文件在AES-256中使用RSA-2048公钥加密。我想用Java用私钥解密文件。我做了很长时间的研究,尝试了很多方法,但似乎都不管用。我只是找到与工作解决方案相关的问题,但并不完全针对我的问题 我使用以下命令生成公钥/私钥对: openssl req -x509 -nodes -days 18250 -newkey rsa:2048 -keyout MyPrivateKey.pem -out MyPublicKey.pem -

我知道这很难。。。但我使用OpenSSL以非常标准的方式加密文件。该文件在AES-256中使用RSA-2048公钥加密。我想用Java用私钥解密文件。我做了很长时间的研究,尝试了很多方法,但似乎都不管用。我只是找到与工作解决方案相关的问题,但并不完全针对我的问题

我使用以下命令生成公钥/私钥对:

openssl req -x509 -nodes -days 18250 -newkey rsa:2048
-keyout MyPrivateKey.pem -out MyPublicKey.pem
-subj "/C=CH/O=My Company/CN=My Key"
openssl smime -encrypt -aes256 -in message.zip -binary
-outform DEM -out message.dat MyPublicKey.pem
openssl smime -decrypt -in message.dat -binary
-inform DEM -inkey MyPrivateKey.pem -out message.zip
我使用以下命令加密文件:

openssl req -x509 -nodes -days 18250 -newkey rsa:2048
-keyout MyPrivateKey.pem -out MyPublicKey.pem
-subj "/C=CH/O=My Company/CN=My Key"
openssl smime -encrypt -aes256 -in message.zip -binary
-outform DEM -out message.dat MyPublicKey.pem
openssl smime -decrypt -in message.dat -binary
-inform DEM -inkey MyPrivateKey.pem -out message.zip
可以使用以下命令对文件进行解密:

openssl req -x509 -nodes -days 18250 -newkey rsa:2048
-keyout MyPrivateKey.pem -out MyPublicKey.pem
-subj "/C=CH/O=My Company/CN=My Key"
openssl smime -encrypt -aes256 -in message.zip -binary
-outform DEM -out message.dat MyPublicKey.pem
openssl smime -decrypt -in message.dat -binary
-inform DEM -inkey MyPrivateKey.pem -out message.zip
但是如何在Java中进行解密呢?我知道JCE,也听说过BouncyCastle。我只是找到一些提示,但没有有效的解决方案

顺便说一句:使用OpenSSL对文件进行非对称加密,并使用Java对其进行解密,这是一个要求和硬约束


谢谢各位专家的帮助

openssl命令行创建CMS消息(在PKCS#7中指定)。您需要bouncy castle SMIME库来处理这些。该功能不在标准Java API中。

请注意,除非您需要特定的加密,否则您可能不需要安装bouncy castle提供程序。我的答案中有什么遗漏吗?