mirror of
https://github.com/sphildreth/roadie
synced 2024-11-23 12:43:13 +00:00
23 lines
No EOL
646 B
C#
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;
|
|
}
|
|
}
|
|
}
|
|
} |