¿Alguien sabe de una buena implementación de bcrypt? Sé que esta pregunta se ha hecho antes pero obtuvo muy poca respuesta. No estoy seguro de elegir una implementación que aparezca en Google y creo que es mejor que use sha256 en el espacio de nombres System.Security.Cryptography, ¡al menos entonces sé que es compatible! ¿Qué pensamientos tienes?
fuente
BCrypt.Net parece ser la biblioteca más popular en este momento
http://bcrypt.codeplex.com/
Aquí hay un ejemplo de cómo usarlo para hash de contraseña:
Salida de muestra:
fuente
Puede encontrar una implementación actualizada de BCrypt para .Net aquí: http://bcrypt.codeplex.com/
fuente
Necesitaba una implementación de BCrypt al mover algo de PostgreSQL (que tiene pg_crypto) a SQLite (que no lo tiene), así que escribí la mía propia. Al ver este mensaje, no soy el único que necesita esto, he decidido ponerle una licencia y liberarlo. La URL es:
http://zer7.com/software.php?page=cryptsharp
La implementación de Blowfish detrás de él es un puerto de la implementación de C de dominio público de Bruce Schneier, y tiene éxito en todos los vectores de prueba oficiales.
El código de BCrypt lo escribí yo mismo según la especificación. También creé un script PHP que genera contraseñas aleatorias de longitud 0 a 100 y las sales, las codifica y las envía a un archivo de prueba. El código C # coincide con estos el 100% del tiempo hasta ahora. Le invitamos a utilizar el script y probarlo usted mismo.
La biblioteca también incluye código PBKDF2 que funciona para cualquier HMAC a diferencia de la implementación solo SHA-1 de .Net (agregada hoy; tengo la intención de hacer SCrypt en C # pronto y eso requiere PBKDF2 con HMAC-SHA256). También podría crear un esquema basado en esto, si quisiera.
fuente
Respuesta incorrecta, consulte a continuación
Todos los algoritmos postfixed "Cng" (Cryptography Next Generation) en .Net Framework ahora usan bcrypt. Por ejemplo, SHA256Cng .
En realidad, el MS BCrypt (BestCrypt) no se refiere al que se basa en el cifrado Blowfish; gracias, RobbyD, por el comentario.
No eliminará la respuesta, en caso de que alguien más tenga la misma confusión.
fuente
¿Has probado esta función MS BCryptCreateHash C ++ quizás? Parece estar presente desde Windows Server 2008 y Windows Vista.
Además, probablemente también pueda verificar la siguiente clase MS C # BCryptNative.cs .
fuente