Question

Je prévois d'utiliser jBCrypt pour le hachage du mot de passe dans une nouvelle application Web, comme c'est censé être le meilleur de ce que j'ai lu. Comme je ne l'ai pas utilisé avant, je me demande s'il n'y a aucune raison de ne pas l'utiliser.

J'ai ceci:

  • Je ne l'ai pas trouvée dans le référentiel Maven (jbcrypt et bcrypt sont recherchés sur mvnrepository.org), ce qui est un inconvénient, car j'aimerais que mes dépendances soient gérées à l'aide d'un référentiel Maven si possible. Si jBCrypt est la meilleure solution pour le hachage de mots de passe, je devrais configurer mon propre référentiel local et le rendre disponible. Ou est-ce que je viens de le manquer? Peut-être que c'est quelque part là-bas?
  • Cela ne concerne que la version 0.2, mais peut-être est-il stable de toute façon et la raison pour laquelle le numéro de version est faible a une autre cause?
Était-ce utile?

La solution

jBcrypt convient probablement comme algorithme de cryptage pour vos mots de passe; blowfish est relativement fort. Bien que Blowfish ait été signalé comme un problème d'implémentation, je ne trouve rien de bien rapporté à propos de jBcrypt. En revanche, Blowfish n’a pas été testé aussi fréquemment que d’autres algorithmes et un Le type crack d'attaque plaintxt connue fonctionne souvent mieux que prévu, ce qui surprend les amateurs de cryptographie.

Alors voici ce que je suggérerais:

  • Allez-y et utilisez jBcrypt mais protégez vos fichiers de mots de passe cryptés dans la mesure du possible - comme vous le feriez avec / etc / shadow sur un système UNIX.
  • Contrairement à la suggestion de Nikhil, je tiendrais les sources dans votre contrôle de version, pour deux raisons: (1) où les conserveriez-vous, car vous en avez besoin à chaque fois que vous compilez, et (2) ) car il y a toujours la chance que la personne qui exécute jBcrypt passe à autre chose, et vous ne voulez pas vous retrouver laissé pendre juste avant une livraison (ce qui est inévitablement au moment de le découvrir. ) Dans ce genre de situation, je mettrais les sources dans votre contrôle de version comme s'il s'agissait de votre code d'activation, puis toutes les modifications pourraient être insérées comme si vous aviez créé une nouvelle version vous-même. Nul besoin d'être plus compliqué que vous ne le seriez normalement.

Autres conseils

En ce qui concerne votre inquiétude quant au fait qu’elle n’est pas mûre, j’allais vous suggérer de configurer vos propres tests JUnit en comparant les résultats de jBcrypt et de Bcrypt, qui a fait ses preuves, afin de voir si vous obtenez les mêmes résultats, puis de contribuer à ces tests. au projet jBcrypt.

Mais cela a déjà été fait:

  

... est livré avec un ensemble d'unités JUnit   tests pour vérifier le bon fonctionnement de   la bibliothèque et la compatibilité avec le   implémentation C canonique de la   algorithme bcrypt.

Je commencerais par les tests JUnit pour vérifier s’ils répondent à votre niveau de satisfaction.

Je doute que la stabilité soit un problème, car bcrypt lui-même est mature et que ses minuscules enveloppes standardisées ne font rien d’extraordinaire. Je suis satisfait de l'autre wrapper bcrypt de Damien Miller, python-bcrypt , qui est uniquement sur la version 0.1.

Je ne connais pas bien Maven, mais (alerte à l'hérésie!) je doute que vous ayez besoin d'un contrôle de version pour un composant aussi simple que bcrypt. Pour citer le site, les modifications apportées de la v0.1 à la v0.2 étaient les suivantes: "corrections correctes, typos et API (entièrement compatibles avec les versions antérieures)," et la liste TODO est vide.

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