2012-03-19 17 views
8

Mam projekt, w którym otrzymałem skrót MD5 o wartości od 1 do 2 miliardów, i muszę napisać program rozproszony, który uzyskuje liczbę przez brutalną siłę. Z powodzeniem zakodowałem ten program i działa. Zastanawiałem się, czy istnieje sposób na przyspieszenie generowania skrótów?C# Szybsza generacja skrótów MD5

Oto moja obecna funkcja do generowania skrótów:

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

dzięki za pomoc

+3

Generowanie je raz, a następnie ładowanie ich z plikiem jest oczywisty pomysł. – Jon

+0

Tworzenie skrótów, podczas gdy obiekt MD5 jest nadal zdefiniowany, prawdopodobnie pomogłoby. Zdefiniowanie go, pozostawienie go do dyspozycji, a następnie powtórzenie go dla następnej generacji, jest zasobem ciężkim. –

Odpowiedz

9

Można użyć BitConverter.ToString

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