我知道这很难...但我使用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解密是一项要求和严格限制。
感谢您的帮助,专家!
答案 0 :(得分:0)
openssl
命令行创建CMS消息(在PKCS#7中指定)。你需要充气城堡SMIME库来处理这些。该功能不在标准Java API中。