2011-06-21 15 views
10

He visto un montón de preguntas sobre Blowfish y C# y la respuesta habitual es BouncyCastle. Sin embargo, el proyecto básicamente no tiene documentación y no puedo encontrar el camino a través de la estructura de directorios incluso para encontrar pruebas unitarias como ejemplos. Quiero decir, ¿Blowfish es conocido como Asn1, Bcpg, Crypto (en general?), EC, Ocsp, Pkcs, ¿o qué? Me falta el conocimiento de dominio de saber qué significan todas las siglas en el código fuente.Cómo usar BouncyCastle en C# para el hash unidireccional Blowfish?

¿Hay algún artículo o blog útil o algo que haya tenido éxito en usar la API C# BouncyCastle para Blowfish? Mi principal necesidad es utilizar Blowfish para el hash de contraseñas.

+0

Si hurgar las clases de prueba puede ser capaz de encontrar algo. Ese es el primer lugar que buscaría. – John

+0

@ John cuales? No hay ningún archivo llamado "Hola, esta es la clase Blowfish que estás buscando.cs" sino que más bien se llamaría "BkdeCompTest.cs" o algo así. Como dije, no sé los acrónimos que usan. – Earlz

+0

has hecho una búsqueda global de blowfish? para mí apareció 'Org.BouncyCastle.Crypto.Engines.BlowfishEngine' –

Respuesta

5

Para contraseñas, recomendaría ir con bcrypt que internamente usa Blowfish. La ventaja de utilizar bcrypt es que puede configurar fácilmente qué tan caro es generar el hash de salida. Esto es importante ya que el mayor problema con muchos algoritmos hash populares es que funcionan muy rápido y esto permite que un ataque de fuerza bruta se ejecute a través de muchas permutaciones para encontrar una coincidencia. Al especificar un factor de trabajo grande, puede hacer que sea más lento de ejecutar (en términos informáticos, pero aún rápido en términos humanos) y, por lo tanto, un ataque de fuerza bruta se vuelve inviable.

Ya hay disponible C# implementations.

Cuestiones relacionadas