2010-08-23 3 views
4

Je voudrais utiliser AES (192 ou 256 bits), mais je suis bloqué sur la façon de générer une clé à partir d'un mot de passe fourni par l'utilisateur.Cryptage basé sur le mot de passe utilisant AES dans Java 5 (JCE uniquement)

Je suis allé through this thread, et je suis en mesure d'exécuter le programme en Java 6. Cependant, je dois exécuter le même programme en Java 5 et SecretKeyFactory pour PBKDF2WithHmacSHA1 n'est pas disponible dans 5. JDK

Ainsi, essentiellement, j'ai besoin de générer 192 ou 256 bits pour une clé secrète basée sur le mot de passe des utilisateurs, et je voudrais un moyen sécurisé de le faire dans Java 5.

Aide appréciée! Pour éviter de rester bloqué, j'utilise maintenant 128 bits de MD5 (mot de passe entré par l'utilisateur + sel fixe) comme clé pour AES. Je sais que ça craint et changera le moment où je trouverai un bon moyen de générer la clé.

+0

Cela peut être utile si vous publiez le code qui fonctionne dans Java6. –

+0

@Jim - voir la réponse acceptée à cette question - http://stackoverflow.com/questions/992019/java-256bit-aes-encryption. Le code fonctionne parfaitement dans JDK6, mais je n'ai plus d'idées pour le faire fonctionner pour JDK 5 –

+0

Alors prenez le code d'une version supérieure de Java 1.5 et créez votre propre API, ou faites de même avec Bouncy Castle. Ça ne peut pas être si dur. –

Répondre

-2

Y a-t-il une raison pour laquelle vous voulez PBKDF2WithHmacSHA1? Il existait une version de SecretKeyFactory dans la version 1.4.2, donc vous pouvez rechercher here.

+2

SecretKeyFactory existait en 1.4.2, mais il n'implémente pas l'algorithme PBKDF2WithHmacSHA1. Le lien que vous avez collé utilise KeyFactory pour générer des clés, ce qui ne convient pas à mes fins. J'ai besoin de générer une clé à partir d'un mot de passe en utilisant une sorte de fonction de distribution de clé - mais je ne trouve pas un bon moyen de le faire dans JDK 5 –

Questions connexes