2010-08-02 9 views
2

Je rencontre un problème avec SecureRandom dans java.Problème avec SecureRandom: PRNG non cohérent dans Java 1.5

Ceci était le code qui fonctionnait comme prévu, en générant PRNG lorsqu'il était exécuté sur java 1.4. Donc, fondamentalement, quand il a été exécuté un serveur weblogic en cours d'exécution sur 1.4 généré même PRNG

Problème: Dans un env cluster, les données sont cryptées dans une weblogic 10 par exemple, et les mêmes besoins à décryptées dans un autre weblogic 10 instance.Apparently ne fonctionne pas

Pour votre information: Nous ne avons pas face à cette question dans Weblogic 8.1 comme il a été runing en 1.4 et la clé générée dans les deux serveurs est retourné même que le SecureRandom a été généré avec la même graine.

code:

SecureRandom srandom1 = SecureRandom.getInstance("SHA1PRNG"); 
     srandom1.setSeed(TestClient.RANDOM_SEED); 

      KeyGenerator keyGen1 = null; 
      try { 
       keyGen1 = KeyGenerator.getInstance("AES"); 
      } catch (NoSuchAlgorithmException nsae) { 

      } 

      keyGen1.init(srandom1); 
      Key g_Key_with = keyGen1.generateKey(); 

mais nous observons que, après la migration vers Java 1.5, les sauts de fonctionnalités ci-dessus. Le problème ici est que SecureRandom semble générer des PRNG différents pour la même graine dans deux serveurs weblogic 10 différents fonctionnant sous Java 1.5?

Je ne parle le fil: http://forums.sun.com/thread.jspa?threadID=5298375

si quelqu'un pourrait-il s'il vous plaît suggérer l'alternative à l'utilisation SecureRandom/fix possible?

MISE À JOUR

[b] Mise à jour: [/ b]

Solution possible: On pourrait stocker la clé dans un magasin de clés et le placer dans un emplacement de fichier. et utilisez la même clé pour le décryptage. Mais comment ferais-je à le faire dans un environnement en cluster. La clé générée dans une instance weblogic doit être déchiffrée dans l'autre.

Pourriez-vous me faire savoir l'approche pour cela aussi?

Répondre

3

La question a été traitée sur forums.sun.com. Il n'est pas destiné à fournir la même séquence à partir de la même graine. C'est sécurisé. C'est ce que signifie sécuriser dans ce contexte. Vos attentes sont mal placées. Tout est documenté.

+0

oui je ne suis pas refutting, mais FYI le code même travaillé en JAVA 1.4. Mon exigence est de chiffrer et de déchiffrer des données, pour lesquelles j'aurais besoin de la même clé. Je voudrais mettre à jour la question pour inclure plus d'informations. S'il vous plaît fournir si vous avez une solution? – Sudhakar

+0

Il ne peut pas y avoir de solution étant donné que votre exigence enfreint les spécifications de l'API que vous utilisez. Il existe plusieurs méthodes standard pour générer des clés de session: utilisez l'une d'entre elles. – EJP