roadie/Roadie.Api.Library/Extensions/ByteExt.cs
2019-07-03 11:21:29 -05:00

23 lines
No EOL
646 B
C#

namespace Roadie.Library.Extensions
{
public static class ByteExt
{
public static int ComputeHash(this byte[] data)
{
if (data == null || data.Length == 0) return 0;
unchecked
{
const int p = 16777619;
var hash = (int)2166136261;
for (var i = 0; i < data.Length; i++) hash = (hash ^ data[i]) * p;
hash += hash << 13;
hash ^= hash >> 7;
hash += hash << 3;
hash ^= hash >> 17;
hash += hash << 5;
return hash;
}
}
}
}