我想在Java和PHP中實現RSA加密,但我似乎無法讓PHP識別我的Java公鑰/私鑰。下面是Java代碼編碼/解碼的公鑰和私鑰:RSA加密:Java到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);
}
我第一次使用PEAR Crypt_RSA功能試過,但它不支持X.509或PKCS8(它只是簡單的base64編碼的序列化模數,指數和鍵類型)。然後,我嘗試了OpenSSL「openssl_get_publickey」函數,但它似乎也沒有識別格式。
任何幫助,將不勝感激o.O
那麼我怎麼能在PHP中將ASN.1編碼轉換爲PEM格式呢? – user201117 2009-11-02 18:50:47
找到上面的鏈接後更新了我的答案... – jheddings 2009-11-02 19:41:02
這工作!謝謝=) – user201117 2009-11-02 20:53:16