En uno de mis proyectos elegí bcrypt o PBKDF2 para el KDF para las contraseñas. He leído que bcrypt es generalmente más avanzado y scrypt es aún mejor. Pero estoy usando la plataforma .NET donde bcrypt / scrypt no está disponible en Microsoft, aunque hay varias implementaciones en nuget. Al final, decidí usar PBKDF2, ya que es una implementación predeterminada de MS que espero que sea revisada por algunos expertos en seguridad.
Pero la pregunta es: ¿cuál es el mejor curso de acción en tal situación? ¿Puede uno simplemente elegir la biblioteca mejor calificada con suficientes descargas de nuget y confiar en que es lo suficientemente bueno ya que muchas personas lo usan? ¿Cómo puedo saber si es lo suficientemente bueno entonces. ¿O es mejor usar algo de la plataforma si está disponible? Definitivamente no quiero implementar nada de eso yo mismo.