일부 텍스트를 MD5 Hash
으로 변환하는 데 사용되는 일부 코드가 있습니다. 훌륭하게 작동합니다. gravatar 아바타에 대해 MD5Hhash
을 만드는 데 사용됩니다. 여기있다 : -어떤 코드가 더 효과적입니까?
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을 생성 할 수 있습니다. 따라서이 방법을 수십 번 호출 할 수 있습니다.
premature optimzation 등의 스트레스에 너무 많은 시간을 낭비하지 않고 ... 어떤 것이 더 좋을까요?
그래서 "사용"문장을 적용 할 것을 제안하셨습니까? – Overhed
나는 그것이 "사용"문장을 이미 포함하고있는 두 번째 예제를 사용하는 것이 좋습니다. –
만약 내가 정적 + 자물쇠, 그 일을 할 것입니다 다른 병렬 호출을 차단하는 것입니다 .. 내가 자물쇠를 할 필요가 없습니다, 맞죠? 작동하지만 waaay가 느려질 수 있습니다. (나는 그 일을하고자하는 것이 아니며 단지 100 % 답을 이해하려고 노력하고 있습니다). –