Я пытаюсь реализовать шифрование RSA как на Java, так и на PHP, но я не могу заставить PHP распознавать мои открытые / закрытые ключи Java. Вот код Java для кодирования / декодирования открытых и закрытых ключей:
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);
}
Сначала я попробовал использовать функции PEAR Crypt_RSA, но он не поддерживает X.509 или PKCS8 (просто base64 кодирует сериализованный модуль, экспоненту и тип ключа). Затем я попробовал функцию OpenSSL "openssl_get_publickey", но она также не распознает формат.
Любая помощь будет принята с благодарностью o.O