Implementación de bcrypt lista para producción para .NET

8

¿Qué implementaciones de .NET / C # bcrypt se consideran adecuadas para los entornos de producción?

He visto que CryptSharp y BCrypt.Net se mencionan en las respuestas a otras preguntas, pero sin ninguna discusión sobre qué tan ampliamente se usan o cuánto pueden haber sido revisadas.

    
pregunta broccoli_soup 29.08.2012 - 07:13
fuente

2 respuestas

2

C # comparte con Java una característica notable, que es reproducible . Ese es el lema de Java "escribir una vez, ejecutar en cualquier lugar". No es del todo cierto, pero para el código que:

  1. no utiliza tipos de punto flotante;
  2. es computación pura (sin llamadas al sistema);
  3. es mono-hilo;

entonces las pruebas son efectivas. Esto significa que puede tomar la implementación BCrypt.NET y ver si es compatible con el código de referencia . Tenga cuidado de incluir pruebas con caracteres de contraseña que no sean ASCII, que a menudo son un punto delicado. Además, mida el rendimiento para asegurarse de que la implementación de .NET no sea demasiado lenta (para este tipo de tareas computacionales, se puede esperar que el código Java o .NET sea aproximadamente 2 a 4 veces más lento que el código C).

Si la implementación de .NET es compatible con el código de referencia, y su rendimiento no es abismal, entonces el aspecto de "resultados reproducibles" de C # / .NET le permitirá concluir que está listo para la producción.

    
respondido por el Thomas Pornin 24.02.2013 - 05:01
fuente
1

Estoy consciente de que esto realmente no responde a tu pregunta, pero bcrypt no es (en mi opinión) el mejor mecanismo de hashing de contraseñas.

Puede encontrar una implementación de c # de un mecanismo de hashing de contraseña utilizando PBKDF2 aquí: CrackStation

Aunque es mucho más joven, he oído cosas buenas sobre scrypt scrypt de TarSnap Desafortunadamente, no he tenido mucho éxito en encontrar una buena implementación de .net.

    
respondido por el ATNPGO 31.08.2012 - 20:05
fuente

Lea otras preguntas en las etiquetas