J'essaie d'implémenter RSA Encryption à la fois en Java et en PHP, mais je n'arrive pas à faire en sorte que PHP reconnaisse mes clés publiques/privées Java. Voici le code java pour encoder/décoder les clés publiques et privées:Chiffrement RSA: Java vers 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);
}
J'ai d'abord essayé d'utiliser les fonctions PEAR Crypt_RSA, mais il ne supporte pas X.509 ou PKCS8 (il tout simplement base64 code sérialisé la module, exposant et type de clé). J'ai ensuite essayé la fonction OpenSSL "openssl_get_publickey" mais il ne semble pas non plus reconnaître le format.
Toute aide serait grandement appréciée o.o
Comment puis-je convertir l'encodage ASN.1 au format PEM en PHP? – user201117
Mis à jour ma réponse après avoir trouvé le lien ci-dessus ... – jheddings
Cela a fonctionné! Merci =) – user201117