2012-03-19 62 views
8

我有一个项目,我得到了一个介于1到20亿之间的MD5哈希值,我必须编写一个分布式程序,通过强力获取该数字。我已经成功地编写了这个程序,它的工作原理我想知道是否有办法加速哈希的生成?C#更快生成MD5哈希

这是我目前的函数生成散列:

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

感谢所有帮助

+3

一旦生成它们,然后加载它们从一个文件一个明显的想法。 – Jon 2012-03-19 12:48:19

+0

在MD5对象仍然定义的情况下创建散列可能会有所帮助。定义它,让它进行处理,然后为下一代重新实例化它是非常重要的。 – 2012-03-19 12:51:10

回答

9

你可以使用BitConverter.ToString

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