研究了 2 日这个问题,如何用 Java 读取 openssl genrsa -aes256 生成的密钥,google 了 和读了一些文章,还是得不到答案。求大神指导一下。
目前验证了这几个场景:
然而最开始生成的 keyPair (openssl genrsa -aes256) 居然不能用 Java PEMParser 读到,百思不得其解。明明 passphrase 输入对的,但还是显示不对。目前按照我理解,就是 openssl 生成密钥对的时候,除了会用 所输入的 passphrase 还会对起进行转化,但是我也没有在命令行添加 salt 和 iv 和 k 这些参数,不知道为什么还是会被转化了。百思不得其解,求大神指点一下。
进行 decrypt
PEMDecryptorProvider pemDecryptorProvider = new JcePEMDecryptorProviderBuilder().setProvider(Constant.BOUNCY_CASTLE_PROVIDER).build("passphrase".toCharArray());
PEMKeyPair pemKeyPair = pmeEncryptedKeyPair.decryptKeyPair(pemDecryptorProvider);
PrivateKeyInfo privateKeyInfo = pemKeyPair.getPrivateKeyInfo();
错误信息:
org.bouncycastle.openssl.EncryptionException: exception using cipher - please check password and data.
1
aaronzheng OP 已经自我解决了,用 des3 生成的都可以解密,用 aes 的不行,已经转用 des3 解决问题了。
|