123456789101112131415161718192021 |
- using System;
- namespace Pathfinding.Util {
- /// <summary>Calculates checksums of byte arrays</summary>
- public class Checksum {
- /// <summary>
- /// Calculate checksum for the byte array starting from a previous values.
- /// Useful if data is split up between several byte arrays
- /// </summary>
- public static uint GetChecksum (byte[] arr, uint hash) {
- // Sort of implements the Fowler–Noll–Vo hash function
- const int prime = 16777619;
- hash ^= 2166136261U;
- for (int i = 0; i < arr.Length; i++)
- hash = (hash ^ arr[i]) * prime;
- return hash;
- }
- }
- }
|