C # condivide con Java una caratteristica notevole, che è essere riproducibile . Questo è il motto di Java "scrivi una volta, corri ovunque". Non è completamente vero, ma per codice che:
- non utilizza i tipi a virgola mobile;
- è puro calcolo (senza chiamate di sistema);
- è monofilamato;
allora i test sono efficaci. Ciò significa che puoi prendere l'implementazione BCrypt.NET e vedere se è compatibile con il codice di riferimento . Abbi cura di includere test con caratteri di password non ASCII, che spesso sono un punto dolente. Inoltre, misurare le prestazioni per assicurarsi che l'implementazione .NET non sia eccessivamente lenta (per questo tipo di attività computazionali, il codice Java o .NET può essere previsto da 2 a 4 volte più lento del codice C).
Se l'implementazione .NET è compatibile con il codice di riferimento e le sue prestazioni non sono abissali, allora l'aspetto "risultati riproducibili" di C # /. NET ti consentirà di concludere che è pronto per la produzione.