使用OpenSSL(RSA-2048 Public- / Private-Key)对Java进行非对称加密(AES-256)的解密文件

时间:2014-03-07 08:21:05

标签: java encryption openssl aes rsa

我知道这很难...但我使用OpenSSL以非常标准的方式加密文件。该文件使用RSA-2048公钥在AES-256中加密。我想使用私钥在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

但是如何在Java中完成解密?我知道JCE,我听说过BouncyCastle。我只是找到提示,但没有可行的解决方案。

BTW:使用OpenSSL对文件进行非对称加密并使用Java解密是一项要求和严格限制。

感谢您的帮助,专家!

1 个答案:

答案 0 :(得分:0)

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