我正在尝试在 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);
}
我首先尝试使用 PEAR Crypt_RSA 函数,但它不支持 X.509 或 PKCS8(它只是简单地 base64 编码序列化的模数、指数和密钥类型)。然后我尝试了 OpenSSL“openssl_get_publickey”函数,但它似乎也无法识别格式。
任何帮助将不胜感激