He desarrollado una aplicación web que tratará con información altamente confidencial y quiero asegurar que el hashing de las contraseñas sea el estándar de oro. Lo ideal sería optar por SHA512 salado por usuario utilizando PBKDF2 para realizar múltiples iteraciones del algoritmo, pero como estoy desarrollando en asp.net, no hay una versión incorporada de .net SHA512 para PBKDF2. Estoy limitado a SHA1 (es decir, Rfc2898DeriveBytes).
Mi pregunta es realmente, teniendo en cuenta que estoy desarrollando en .net y asegurando información confidencial, ¿cuál es la mejor manera de hashear las contraseñas de los usuarios?
¿Debo seguir con la implementación SHA1 PBKDF2 de .net?
¿Debo usar una implementación personalizada de PBKDF2 para incorporar SHA512?
¿Debería preferir bcrypt o scrypt a pesar de que no están ampliamente acreditados por los estándares (por ejemplo, NIST)?