2012-03-19 16 views
8

Ho un progetto in cui mi è stato assegnato un hash MD5 di un numero compreso tra 1 e 2 miliardi e devo scrivere un programma distribuito che ottiene il numero in base alla forza bruta. Ho codificato con successo questo programma e funziona. Mi stavo chiedendo se c'è un modo per accelerare la generazione di hash?C# Generazione più veloce di hash MD5

Qui è la mia attuale funzione di generare gli hash:

static string generateHash(string input) 
    { 
     MD5 md5Hasher = MD5.Create(); 
     byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); 
     StringBuilder sBuilder = new StringBuilder(); 
     for (int i = 0; i < data.Length; i++) 
     { 
      sBuilder.Append(data[i].ToString("x2")); 
     } 
     return sBuilder.ToString(); 
    } 

Grazie per qualsiasi aiuto

+3

loro Generazione di una volta e poi di caricarli da un file è un'idea ovvia. – Jon

+0

Creare gli hash mentre l'oggetto MD5 è ancora definito sarebbe probabilmente di aiuto. Definirlo, lasciarlo disporre, quindi riattivarlo per la generazione successiva è pesante. –

risposta

9

si potrebbe usare BitConverter.ToString

static string generateHash(string input) 
{ 
    MD5 md5Hasher = MD5.Create(); 
    byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); 
    return BitConverter.ToString(data); 
}