-
chiffrement RSA en java
Bonjour,
Je voudrais developper un web service qui envoie un message chiffré RSA du serveur au client avec netbeans /glassfish
j'ai deja fait cette partie, mais mon probleme est dans l'envoi de la clé publique RSA de type RSAPublicKey.
c'est impossible d'avoir une methode qui renvoie ce type. j'ai pensé alors à envoyer la clé en tableau d'octets (byte) avec RSAPublicKey.getEncoded();
mais je ne sais pas comment re avoir la clé à partir du tableau.
Pouvez vous m'aider s'il vous plait? s'il existe une autre methode pour avoir la clé, merci de me la proposer.
Merci d'avance.
-
Ce n'est pas la bonne méthode.
La clé publique RAS est constitué d'un exposant et d'un modulo.
Il suffit donc d'envoyer ces deux valeurs, qui sont des BigInteger.
Ensuite tu refais une RSAPublicKeySpec et une KeyFactory pour RSA.
Enfin avec la méthode generatePublic tu réobtiens ta clé.
exemple :
RSAPublicKeySpec rpks = new RSAPublicKeySpec(new BigInteger( mon modulo ), new BigInteger( mon exposant ));
KeyFactory kf = KeyFactory.getInstance("RSA");
RSAPublicKey rpk = (RSAPublicKey)kf.generatePublic(rpks);
mon exposant et mon modulo sont > 512 bits.
Le principe de RSA et sa fiabilité repose sur la difficulté de décomposer en un temps raisonnable ces deux valeurs pour retrouver la clé privée. A noter qu'une clé de 512 bits de long est à la portée des attaques de nos jours, il faut envisager une clé de 1024 voir 2048 maintenant.
-
-
Super !
Tu peux éditer ton sujet et mettre résolu