C # comparte con Java una característica notable, que es reproducible . Ese es el lema de Java "escribir una vez, ejecutar en cualquier lugar". No es del todo cierto, pero para el código que:
- no utiliza tipos de punto flotante;
- es computación pura (sin llamadas al sistema);
- es mono-hilo;
entonces las pruebas son efectivas. Esto significa que puede tomar la implementación BCrypt.NET y ver si es compatible con el código de referencia . Tenga cuidado de incluir pruebas con caracteres de contraseña que no sean ASCII, que a menudo son un punto delicado. Además, mida el rendimiento para asegurarse de que la implementación de .NET no sea demasiado lenta (para este tipo de tareas computacionales, se puede esperar que el código Java o .NET sea aproximadamente 2 a 4 veces más lento que el código C).
Si la implementación de .NET es compatible con el código de referencia, y su rendimiento no es abismal, entonces el aspecto de "resultados reproducibles" de C # / .NET le permitirá concluir que está listo para la producción.