¿Alguien sabe de una buena implementación de bcrypt, sé que esta pregunta se ha hecho antes, pero obtuvo muy poca respuesta. Estoy un poco inseguro de solo elegir una implementación que aparece en google y estoy pensando que es mejor que use sha256 en el espacio de nombres de System.Security.Cryptography, ¡al menos entonces sé que es compatible! ¿Qué piensas?.net implementación de bcrypt
Respuesta
Suena como que busca BCrypt.net:
BCrypt.net es una implementación de código contraseña hash basado en Blowfish de OpenBSD, se describe en "un esquema de contraseña Futuro-Adaptable" por Niels Provos y David Mazières. Es un puerto directo de jBCrypt por Damien Miller, y así se libera bajo la misma licencia de estilo BSD . El código es totalmente administrado y debería funcionar con cualquier implementación de CLI little-endian - se ha probado con Microsoft .NET y Mono.
Sí, esa fue la que encontré con Google también. ¿Lo usas, o sabes si es ampliamente utilizado? – Gareth
No he usado BCrypt, pero a juzgar por las referencias de otros sitios de Internet, parece que esta implementación es realmente buena. Sin embargo, a menos que tenga una necesidad apremiante de utilizar BCrypt específicamente, ¿por qué no solo opta por el SHA256 o el SHA512? – ine
La razón por la que pensé en usar BCrypt fue por este artículo http://www.matasano.com/log/958/enough-with-the-rainbow-tables-what-you-need-to-know-about-secure -contraseña-esquemas/y afirmó que BCrypt es el camino a seguir. – Gareth
Usted puede encontrar una aplicación actualizada de Bcrypt para .Net aquí: http://bcrypt.codeplex.com/
necesitaba una aplicación Bcrypt cuando se mueve algo de PostgreSQL (que tiene pg_crypto) a SQLite (que no lo hace), por lo Yo escribí el mío. Viendo por este mensaje que no soy el único que necesita esto, he decidido darle una licencia y lanzarlo. La URL es:
http://zer7.com/software.php?page=cryptsharp
la aplicación Blowfish detrás de esto es un puerto de la aplicación C de dominio público de Bruce Schneier, y tiene éxito en todos los vectores de prueba oficiales.
El código de BCrypt que escribí en función de la especificación. También creé un script PHP que genera contraseñas aleatorias de longitud de 0 a 100 y sales, las cripta y las envía a un archivo de prueba. El código C# coincide con estos 100% del tiempo hasta el momento. Puede usar el script y probarlo usted mismo.
La biblioteca también incluye código PBKDF2 que funciona para cualquier HMAC en comparación con la implementación SHA-1 solo de .Net (agregado hoy - Tengo la intención de hacer SCrypt en C# pronto y que requiere PBKDF2 con HMAC-SHA256) . Podrías hacerte un esquema basado en esto también, si quisieras.
BCrypt.Net parece ser una biblioteca más popular en este momento
He aquí un ejemplo de cómo utilizar para hash de la clave: la producción
[TestMethod]
public void BCryptTest()
{
const string password = "PASSWORD";
const int workFactor = 13;
var start = DateTime.UtcNow;
var hashed = BCrypt.Net.BCrypt.HashPassword(password, workFactor);
var end = DateTime.UtcNow;
Console.WriteLine("hash length is {0} chars", hashed.Length);
Console.WriteLine("Processing time is {0} with workFactor {1}", end - start, workFactor);
Console.WriteLine("Hashed password: {0} ", hashed);
Console.WriteLine("correct password {0}", BCrypt.Net.BCrypt.Verify("PASSWORD", hashed));
Console.WriteLine("incorrect password {0}", BCrypt.Net.BCrypt.Verify("PASSWORd", hashed));
}
muestra:
hash length is 60 chars
Processing time is 00:00:01.0020000 with workFactor 13
Hashed password: $2a$13$iBqdG7ENBABEargiyzGlTexPsmviF/qrFxUZB2zce7HKF6MoBNhEq
correct password True
incorrect password False
¿Has probado este MS BCryptCreateHash C++ function 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.
ver http://stackoverflow.com/questions/9711568/does-winapis-bcrypt-h-actually-support-bcrypt-hashing/30014282#30014282 - las cosas de Windows bcrypt no están relacionadas con bcrypt. – ben
- 1. .NET implementación de scrypt
- 2. ¿Cuál es la implementación recomendada de Bcrypt C?
- 3. Biblioteca Nodejs bcrypt
- 4. Rubí Bcrypt comparación de hash
- 5. .NET 4.0 Implementación de OutputCacheProvider
- 6. .NET Implementación de XML eficiente
- 7. Implementación de WeakReference en .NET
- 8. NodeJS: bcrypt vs criptografía nativa
- 9. Implementación de Midi dentro de .Net
- 10. Instalación de gema bcrypt-ruby en Windows
- 11. Automatización de la implementación .Net usando Cruise Control .Net
- 12. Implementación de un TraceListener personalizado en .NET
- 13. Implementación de .Net OpenId con ASP.Net MVC
- 14. ¿Buena implementación de zlib en .NET?
- 15. .NET Razor engine - Implementación de diseños
- 16. ¿Alternativa a la implementación URI de .NET?
- 17. ¿Existe una implementación .NET de HtmlPurifier (php)
- 18. Encriptación de contraseña: PBKDF2 (usando sha512 x 1000) vs Bcrypt
- 19. "BCrypt :: Errors :: InvalidHash" al intentar iniciar sesión
- 20. Implementación del servidor SSH en C# /. Net
- 21. ¿Una implementación singleton obvia para .NET?
- 22. Buena implementación del diccionario débil en .Net
- 23. Implementación de cola de bloqueo de subprocesos en .NET
- 24. Implementación de un sistema de archivos virtual en .NET
- 25. .NET Framework 4 tamaño total de implementación de la aplicación
- 26. Error al indicar que "bcrypt-ruby no es parte del paquete", ¿cómo puedo agregar bcrypt-ruby a Gemfile?
- 27. ¿se mejoró bcrypt con la frase de contraseña hmac'd?
- 28. ¿Cómo se mantiene bcrypt con la ley de Moore?
- 29. ¿Cuál es la ventaja de scrypt over bcrypt?
- 30. En .NET, ¿cuál es la implementación interna de un delegado?
El hecho de que esta pregunta tenga 20 votos positivos en lugar de 2 MIL MILLONES muestra que no nos importa lo suficiente el almacenamiento seguro de las contraseñas –