2014-05-09 5 views
3

J'utilise la fonction serveur php crypte comme ceci:crypte PHP (passe, sel) alternatif en Java - algorithme Blowfish

$hash = crypt($password, '$2y$10$' . $salt); 

Il est hachage du mot de passe par la méthode Blowfish.

Je cherche un équivalent Java pour le mot de passe crypt.

J'ai trouvé ce code, mais je ne sais pas où ajouter $ salt. Plus au-dessus:

String key = "abcd"; 
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "Blowfish"); 
Cipher cipher = Cipher.getInstance("Blowfish"); 
cipher.init(cipher.ENCRYPT_MODE, keySpec); 
return DatatypeConverter.printBase64Binary(cipher.doFinal(key.getBytes())); 

Merci pour chaque idée ou réponse.

Répondre

0

Pas une réponse à votre question, mais peut-être aide:

Il y a la bibliothèque Codec Apache Commons qui contient une crypte Linux (3) compatible avec la fonction au moins des, md5, SHA256 et SHA512 crypte base() algorithmes dans le cas où vous ne avez pas vraiment besoin Blowfish mais juste quelque chose plus forte que les hash traditionnelles dES base (utilisation sha512 puis): http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java?view=markup

Et il y a autre code source qui implémente l'algorithme Blowfish, mais il est dans C: http://doxygen.postgresql.org/crypt-blowfish_8c_source.html

Comme vous pouvez le voir, crypt() utilise des algorithmes basés uniquement sur ces chiffrements de chiffrement, mais qui acheminent l'entrée plusieurs milliers de fois à travers eux pour obtenir une bonne valeur de hachage.

Questions connexes