我知道这很难...但我使用 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。我只是找到提示,但没有有效的解决方案。
顺便说一句:文件使用 OpenSSL 进行非对称加密并使用 Java 进行解密是一项要求和硬约束。
感谢您的帮助,专家们!
最佳答案
openssl
命令行创建 CMS 消息(在 PKCS#7 中指定)。您需要充气城堡 SMIME 库来处理这些内容。该功能不在标准 Java API 中。
关于java - 使用 OpenSSL (RSA-2048 Public-/Private-Key) 解密已非对称加密 (AES-256) 的 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22244947/