JavaとPHPの両方でRSA暗号化を実装しようとしていますが、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);
}
最初にPEARCrypt_RSA関数を使用してみましたが、X.509またはPKCS8をサポートしていません(シリアル化されたモジュラス、指数、およびキータイプをbase64でエンコードするだけです)。次に、OpenSSLの「openssl_get_publickey」関数を試しましたが、形式も認識されないようです。
どんな助けでも大歓迎ですoO