HashAlgorithm.ComputerHash isn't thread safe,

pull/3113/head
Keivan Beigi 10 years ago
parent 852f97012f
commit cce280d260

@ -1,6 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
@ -8,12 +6,15 @@ namespace NzbDrone.Common.Crypto
{ {
public static class HashConverter public static class HashConverter
{ {
private static SHA1 HashAlgorithm = SHA1.Create(); private static readonly SHA1 Sha1 = SHA1.Create();
public static int GetHashInt31(string target) public static int GetHashInt31(string target)
{ {
var hash = HashAlgorithm.ComputeHash(Encoding.Default.GetBytes(target)); byte[] hash;
lock (Sha1)
{
hash = Sha1.ComputeHash(Encoding.Default.GetBytes(target));
}
return BitConverter.ToInt32(hash, 0) & 0x7fffffff; return BitConverter.ToInt32(hash, 0) & 0x7fffffff;
} }
} }

Loading…
Cancel
Save