如果生成RSA密钥和加密文本如下
$ openssl genrsa -out private.pem 1024
$ openssl rsa -in private.pem -out public.pem -outform PEM -pubout
$ echo 'too many secrets' > file.txt
$ openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
现在我想用JAVA源代码解密。有没有办法做到这一点?
是的,我们的代码就是这样做的。我们使用openssl工具加密数据库加密密钥,然后使用Java内置的Crypto包在Java中解密它们:
https://docs.oracle.com/javase/7/docs/api/javax/crypto/package-summary.html
我想这个S.O.帖子可能会为您提供所需的信息:
Java equivalent of an OpenSSL AES CBC encryption
这里似乎也是好东西:
Java decryption of an encrypted file with openssl aes 256 cbc
这个问题应该有多个答案可以通过Google或之前的S.O.除了这些之外的问题。我认为这些帖子的基本思路就在这里。诀窍是为您用于加密的任何加密参数使一切正确。您似乎正在使用所有默认值。我们使用-aes-256-cbc选项。如果您可以控制可以使用的加密参数,那么找到答案可能就更容易了。