94 votos

.net aplicación de bcrypt

¿Alguien sabe de una buena implementación de bcrypt, sé que esta pregunta se ha hecho antes, pero lo tengo muy poca respuesta. Soy un poco inseguro de escoger una aplicación que se convierte en google y estoy pensando que puedo ser mejor usar sha256 en el Sistema.De seguridad.La criptografía de espacio de nombres, al menos, el que yo conozco es compatible! ¿Cuáles son sus pensamientos?

44voto

ine Puntos 10065

Suena como que usted está buscando BCrypt.net:

BCrypt.net es una implementación de Blowfish de OpenBSD basado contraseña hash del código, que se describe en "Un Futuro-Adaptable Esquema de Contraseñas" por Niels Provos y David Mazières. Es un puerto directo de jBCrypt por Damien Miller, y por lo tanto es publicado bajo la mismo estilo BSD license. El código es totalmente gestionado y debería funcionar con cualquier "little-endian " CLI aplicación -- ha sido probado con Microsoft .NET y el Mono.

21voto

Ryan Emerle Puntos 8073

Usted puede encontrar una actualización de la aplicación de BCrypt .Net aquí: http://bcrypt.codeplex.com/

17voto

Maksym Kozlenko Puntos 4557

BCrypt.Net parece ser una de las más populares de la biblioteca en este momento

http://bcrypt.codeplex.com/

Aquí está un ejemplo de cómo usarlo para hash de la contraseña:

[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));
    }

Ejemplo de salida:

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

6voto

Zer Puntos 1100

Necesitaba un BCrypt ejecución cuando se mueve algo de PostgreSQL (que ha pg_crypto) a SQLite (que no), así que escribí mi propia cuenta. Ver a partir de este mensaje, yo no soy el único que necesitan este, me he decidido a dar una licencia y la liberación. La dirección URL es:

http://zer7.com/software.php?page=cryptsharp

El Blowfish de implementación detrás es un puerto de Bruce Schneier dominio público implementación en C, y tiene éxito en todos los test oficiales de los vectores.

El BCrypt código que yo misma escribí basado en la especificación. También he creado un script PHP que genera contraseñas aleatorias de longitud de 0 a 100 y las sales, las criptas de ellos, y los resultados a un archivo de prueba. El código C# de los partidos de estos el 100% del tiempo. Son bienvenidos a utilizar la secuencia de comandos y la prueba de ello.

La biblioteca también incluye PBKDF2 código que funciona para cualquier HMAC como oposición .Net SHA-1-sólo implementación (añadido el día de hoy, estoy intentando hacer SCrypt en C# pronto y que requiere PBKDF2 con HMAC-SHA256). Usted puede hacer usted mismo un esquema basado en esto también, si usted quería.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X