我有一些我正在审查的代码,用于将一些文本转换为MD5 Hash
. 效果很好。MD5Hhash
它用于为gravatar 头像创建一个。这里是 :-
static MD5CryptoServiceProvider md5CryptoServiceProvider = null;
public static string ToMD5Hash(this string value)
{
//creating only when needed
if (md5CryptoServiceProvider == null)
{
md5CryptoServiceProvider = new MD5CryptoServiceProvider();
}
byte[] newdata = Encoding.Default.GetBytes(value);
byte[] encrypted = md5CryptoServiceProvider.ComputeHash(newdata);
return BitConverter.ToString(encrypted).Replace("-", "").ToLower();
}
注意我们是如何MD5CryptoServiceProvider
在第一次调用这个方法时创建的?(为了简单起见,这里不用担心比赛条件)。
我想知道,如果我将用于创建提供程序的行更改为这个...
using(var md5CryptoServiceProvider = new MD5CryptoServiceProvider())
{
... snip snip snip ....
}
现在,如何使用/使用这种方法?好吧,假设它是 StackOverflow 的主页 -> 为每个帖子生成用户的 md5 哈希,这样我们就可以生成他们的 gravatar url。所以视图可以调用这个方法几十次。
不要试图浪费太多时间来强调过早的优化等......哪个会更好?