2010-06-01 2 views
4

J'ai besoin de crypter des données en utilisant exactement la méthode de cryptage PKCS # 1 V2.0 (définie au point 7.2.1 de the PKCS#1V2 specification).PKCS # 1 V2.0 est-il implémenté pour Java?

Est-il déjà implémenté pour Java?

Je pense à quelque chose comme juste passer un paramètre à javax.crypto.Cipher en spécifiant "PKCS # 1V2", je me demande s'il y a quelque chose comme ça?

Répondre

6

Le cryptage PKCS # 1 v2.0 est généralement appelé cryptage OAEP. Alors:

Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding"); 

L'endroit où regarder est les documents Java Cryptography architecture: Standard Algorithm Name Documentation ou Sun Providers Documentation.

Comme vous pouvez le voir le fournisseur de SunJCE prend en charge les variations suivantes de OAEP:

  • OAEPWITHMD5ANDMGF1PADDING
  • OAEPWITHSHA1ANDMGF1PADDING
  • (OAEPWITHSHA1ANDMGF1PADDING)
  • OAEPWITHSHA-256ANDMGF1PADDING
  • OAEPWITHSHA-384ANDMGF1PADDING
  • OAEPWITHSHA-512ANDMGF1PADDING
+1

Sun Providers Documentation, oui, Nom de l'algorithme standard Docs, no. Sun ne promet pas d'implémenter tout ce dont ils ont réservé un nom. A titre d'exemple, le nom de l'algorithme "ECIES" est réservé, mais aucun fournisseur Sun ne l'implémente. –

+2

La documentation de nom d'algorithme standard vous aide à trouver le nom correct au lieu de "PKCS # 1V2". La documentation Sun Providers vous aide à déterminer si le fournisseur Sun l'implémente ou si vous essayez de trouver un autre fournisseur. –

+0

@RasmusFaber Ressemble à OAEP (Optimal Asymmetric Encryption Padding), c'est juste la définition de remplissage. PKCS1V2 est-il à peu près un rembourrage? –