Pregunta

Estoy planeando usar jBCrypt para el hashing de contraseñas en una nueva aplicación web, como Se supone que es lo mejor de lo que he leído. Como no lo he usado antes, estoy investigando si hay alguna razón para no usarlo.

Tengo esto:

  • No lo encontré en el repositorio de Maven (busqué jbcrypt y bcrypt en mvnrepository.org), lo cual es una decepción, ya que me gustaría que mis dependencias se administren usando un repositorio de Maven si es posible. Si jBCrypt es la mejor solución para el hashing de contraseñas, tendría que configurar mi propio repositorio local y tenerlo disponible de esa manera. ¿O simplemente me lo he perdido? Tal vez está ahí en alguna parte?
  • Solo está en la versión 0.2, pero tal vez sea estable y la razón de un número de versión bajo tiene alguna otra causa.
¿Fue útil?

Solución

jBcrypt probablemente esté bien como algoritmo de cifrado para tus contraseñas; El pez globo es relativamente fuerte. Aunque ha habido algunos fallos de implementación reportados en Blowfish en sí, no encuentro nada muy informado sobre jBcrypt. Por otro lado, Blowfish no se ha probado tan fuertemente como otros algoritmos, y un crack -conocido al estilo conocido-plaintxt ataque a menudo funciona mejor de lo esperado, sorprendiendo a los frikis criptográficos.

Así que esto es lo que sugeriría:

  • siga adelante y use jBcrypt, pero proteja sus archivos de contraseña encriptados en la medida que pueda, como lo haría con / etc / shadow en un sistema UNIX.
  • Contrariamente a la sugerencia de Nikhil, yo pondría las fuentes en su control de versión, por dos razones: (1) dónde más las guardaría, ya que las necesita cada vez que construye, y (2 ) porque siempre existe la posibilidad de que la persona que realiza jBcrypt se traslade a otras cosas, y no querrá que lo dejen colgado justo antes de una entrega (que es inevitablemente cuando lo descubra). ) En este tipo de situación, pondría las fuentes en su control de versión como si estuvieran en su código, y luego se pueden insertar los cambios como si hubiera creado una nueva versión. No necesita ser más complicado de lo que normalmente sería.

Otros consejos

En cuanto a su preocupación de que no está maduro, le sugeriría que configure sus propias pruebas de JUnit comparando los resultados de jBcrypt y Bcrypt más comprobado, para ver si obtiene los mismos resultados y luego contribuya con esos al proyecto jBcrypt.

Pero eso ya se ha hecho:

  

... se envía con un conjunto de unidades JUnit   pruebas para verificar el correcto funcionamiento de   La biblioteca y la compatibilidad con el   implementación canónica de la   algoritmo de cifrado.

Examinar las pruebas de JUnit para ver si cumplen con su nivel de satisfacción es donde empezaría ...

Dudo que la estabilidad sea un problema, ya que bcrypt en sí está maduro y sus envoltorios pequeños y estandarizados no hacen nada extraordinario. Estoy contento con el otro envoltorio bcrypt de Damien Miller, python-bcrypt , que es solo en la versión 0.1.

No estoy familiarizado con Maven, pero (¡alerta de herejía!) Dudo que necesites un control de versiones para un componente tan simple como bcrypt. Para citar el sitio, los cambios de v0.1 a v0.2 fueron " corrección, error tipográfico y ajustes de API (totalmente compatibles con versiones anteriores), " y la lista de TODO está vacía.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top