今天做一个认证的功能时,出现了一个问题,加载RSA的证书报错。证书生成命令:
openssl genrsa -aes256 -out server-key.pem 1024加密密码:12345678java代码:
 Security.addProvider(new BouncyCastleProvider());
        PEMReader reader = new PEMReader(new InputStreamReader(new FileInputStream(new File("C:\\Users\\cwown\\Desktop\\server-key.pem"))), new PasswordFinder() {
            @Override
            public char[] getPassword() {
                return "12345678".toCharArray();
            }
        });
        KeyPair keyPair = (KeyPair) reader.readObject();
        System.out.println(keyPair.getPrivate());错误信息:
Exception in thread "main" org.bouncycastle.openssl.EncryptionException: exception using cipher - please check password and data.
at org.bouncycastle.openssl.PEMUtilities.crypt(Unknown Source)
at org.bouncycastle.openssl.PEMUtilities.crypt(Unknown Source)
at org.bouncycastle.openssl.PEMReader$KeyPairParser.readKeyPair(Unknown Source)
at org.bouncycastle.openssl.PEMReader$RSAKeyPairParser.parseObject(Unknown Source)
at org.bouncycastle.openssl.PEMReader.readObject(Unknown Source)
at RSATest.main(RSATest.java:31)
Caused by: java.security.InvalidKeyException: Illegal key size
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
... 6 more看提示是密码错误,但是证书生成时的密码确实时12345678。
生成证书时加密选择des3是正常的,有没有大佬指点下为啥AES就不行。