Cómo descifrar datos usando clave privada (.private) en java

Los datos se cifran usando OpenSSL en PHP y me gustaría descifrar Java pero obtengo un error en Java

Código de cifrado en PHP-

public function getEncryptedString($cardNumber,$key_id){
              $encryptedCardNumber = '';
              $key_name = "key_{$key_id}"; 
              $pub_key_path =$key_name.".public";  
              $fp=fopen ($pub_key_path,"r"); //Open the public key (key_8.public)
              $pub_key = fread($fp,8192);  //Read public key  key (key_8.public) into 
              fclose($fp); 
               openssl_public_encrypt($cardNumber,$encryptedCardNumber,$pub_key);   
              if($key_id > 4) return rawurlencode(base64_encode($encryptedCardNumber));  
              else return addslashes($encryptedCardNumber);          

    }

Código de descifrado en JAVA

public static String getDecryptedValue(int keyId,String encryptedCCNumber ,String passPhrase){
              String result="";

              String privateKeyFileName="key_8.private";
              String privateKeyLocation= PropertiesUtil.getProperty("PUBLIC_PRIVATE_KEY_LOCATION");
             String privateKeyFileNameLocation=privateKeyLocation+privateKeyFileName;
              String decryptedValue= getDecryptedMessage(privateKeyFileNameLocation,encryptedCCNumber,passPhrase);
              return result;

       }


       public static String getDecryptedMessage(String privateKeyFileNameLocation, String encryptedCCNumber,String passPhrase) 
                { 
              byte[] decodedBytesCCNumber= Base64.decodeBase64(encryptedCCNumber.getBytes());
           byte[] decryptedMessage=null; 
           try { 
               Cipher cipher = Cipher.getInstance("RSA"); 

                PrivateKey privateKey = getPrivateKey(privateKeyFileNameLocation,passPhrase);
               cipher.init(Cipher.DECRYPT_MODE, privateKey); 
               decryptedMessage = cipher.doFinal(decodedBytesCCNumber); 

           } catch (Throwable t) { 
              t.printStackTrace();
           }

           System.out.println("new String(decryptedMessage)"+new String(decryptedMessage));
           return new String(decryptedMessage); 

       } 

       private static PrivateKey getPrivateKey(String privateKeyFileNameLocation,String passPhrase) throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException, UnrecoverableEntryException {
               KeyStore ks = KeyStore.getInstance("PKCS12");
               ks.load(new FileInputStream(privateKeyFileNameLocation), passPhrase.toCharArray());
               String alias = (String) ks.aliases().nextElement();
               KeyStore.PrivateKeyEntry keyEntry = (KeyStore.PrivateKeyEntry) ks.getEntry(alias, new KeyStore.PasswordProtection(passPhrase.toCharArray()));
               return keyEntry.getPrivateKey();
           }

El código Java está dando el siguiente error.

java.io.IOException: toDerInputStream rejects tag type 45
    at sun.security.util.DerValue.toDerInputStream(DerValue.java:847)
    at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1221)
    at java.security.KeyStore.load(KeyStore.java:1214)
Respuesta 1

Quiero agregar los datos a una lista basada en el valor clave de otra lista. Aquí auditMap tiene claves att_12, att_11 y oldValues ​​tiene claves att_11, att_12, quiero que el orden de oldValues ​​aparezca en el mismo ...

Me gustaría integrar birt report viwer en mi aplicación. Para eso necesito personalizar la fuente del servlet del visor. ¿Alguien podría ayudarme a obtener el código fuente de ViwerServlet?

Estoy haciendo una vista web usando jsp, javascript y html. Tengo una lista de elementos que, cuando se hace clic en llamadas, entre otras cosas, la función de JavaScript genera PicturePlider. La idea es que un conjunto de ...

Mi archivo contiene algunas líneas como "Esta es una cadena". = "Este es el contenido de una cadena". "Another \" example \ "" = "Nuevo ejemplo". "Mi cadena puede tener varias líneas". = "Mi cadena puede tener varios ...