Quelle est la différence de l'aide des touches de la Colombie-Britannique ou par défaut?

StackOverflow https://stackoverflow.com/questions/2950212

  •  05-10-2019
  •  | 
  •  

Question

Les deux lignes de code:

KeyPairGenerator.getInstance("RSA")
KeyPairGenerator.getInstance("RSA", "BC")

fonctionne bien. Alors, quel est le differecente en utilisant BC ou non?

est BC complètement compatible avec le RSA par défaut utilisé? (En utilisant soleil JDK 6)

Était-ce utile?

La solution

BouncyCastle FAQ il y a des entrées liées à les détails de mise en œuvre du RSA.

J'ai personnellement pas trouvé quoi que ce soit écrit sur les fournisseurs Sun et la Colombie-Britannique sont incompatibles, et je suggère d'utiliser natif implémentation de RSA Java si la dépendance BouncyCastle pourrait être complètement abandonné par cela. Vous devez ajouter des dépendances externes que s'il y a un avantage bien défini de cela.

Si vous utilisez la bibliothèque de la Colombie-Britannique ailleurs dans votre projet, je suppose que cela n'a pas d'importance que le fournisseur à utiliser.

EDIT

J2ME ne comprend pas la mise en œuvre RSA. Donc, si vous envisagez de porter votre application pour J2ME parfois, bibliothèque BouncyCastle est la bonne façon d'aller maintenant.

Autres conseils

De Javadoc du premier constructeur :

  

Retourne un objet qui KeyPairGenerator   génère des paires de clés publiques / privées pour   l'algorithme spécifié.

     

Cette méthode parcourt la liste des   Les fournisseurs de sécurité enregistrés,   en commençant par le plus préféré   Fournisseur. Une nouvelle KeyPairGenerator   objet encapsulant le   la mise en œuvre KeyPairGeneratorSpi    à partir du premier fournisseur qui supports   l'algorithme spécifié est renvoyé .

     

Notez que la liste des enregistrés   les fournisseurs peuvent être récupérés via le   méthode Security.getProviders() .

Le Javadoc lié de Security.getProviders() à son tour, indique ce qui suit:

  

Retourne un tableau contenant tous les fournisseurs installés. L'ordre des fournisseurs dans le tableau est leur ordre de préférence.

Eh bien, apparemment BC est dans votre cas « par hasard » le premier fournisseur préféré. S'il y a Incertitude autour (à savoir que vous voulez distribuer l'application et vous avez aucun contrôle sur l'environnement utilisateur final) et que vous souhaitez laisser coller à utiliser BC, alors vous devriez préférez utiliser le deuxième constructeur.

« BC » retourne la mise en œuvre BouncyCastle de l'algorithme de chiffrement.

Si vous ne spécifiez pas le fournisseur, il retournera le « plus prefferred » la mise en oeuvre de l'algorithme de chiffrement à savoir la providor en position 1 est le plus PRÉFÉRÉ dans le tableau des fournisseurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top