Estoy tratando de implementar el cifrado RSA tanto en Java como en PHP, pero parece que no logro que PHP reconozca mis claves públicas/privadas de Java. Aquí está el código Java para envío/recepción del público y las claves privadas:Cifrado RSA: Java a PHP
public static byte[] EncodePublicKey(PublicKey _publickey) throws Exception
{
return _publickey.getEncoded();
}
public static PublicKey DecodePublicKey(byte[] _encodedkey) throws Exception
{
KeyFactory fac = KeyFactory.getInstance("RSA");
X509EncodedKeySpec encodedKey = new X509EncodedKeySpec(_encodedkey);
return fac.generatePublic(encodedKey);
}
public static byte[] EncodePrivateKey(PrivateKey _privatekey) throws Exception
{
return _privatekey.getEncoded();
}
public static PrivateKey DecodePrivateKey(byte[] _encodedkey) throws Exception
{
KeyFactory fac = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec encodedKey = new PKCS8EncodedKeySpec(_encodedkey);
return fac.generatePrivate(encodedKey);
}
primera vez que trató de utilizar las funciones PERA Crypt_RSA, pero no es compatible con X.509 o PKCS8 (que simplemente codifica la base 64 serializado módulo, exponente y tipo de clave). Luego probé la función OpenSSL "openssl_get_publickey" pero tampoco parece reconocer el formato.
Cualquier ayuda sería muy apreciada O.o
¿Cómo podría entonces convertir la codificación ASN.1 al formato PEM en PHP? – user201117
Actualicé mi respuesta después de encontrar el enlace de arriba ... – jheddings
¡Esto funcionó! Gracias =) – user201117