Skip to content

jslicer/Murmur3

Repository files navigation

Murmur3

Murmur3 hash algorithm in C#

This small project is an implementation of the Murmur3 hash algorithm for 32-bit x86, 128-bit x86, and 128-bit x64 variants. All implemented classes descend from System.IO.Hashing's NonCryptographicHashAlgorithm, which should make for easy adoption.

Example:

namespace Murmur3Test
{
    using System;
    using System.Globalization;
    using System.IO.Hashing;
    using System.Text;
    
    using Murmur3;
    
    public static class Program
    {
        public static void Main()
        {
            NonCryptographicHashAlgorithm alg = new Murmur3F();

            alg.Append(Encoding.UTF8.GetBytes("foobar"));
            Console.WriteLine(((ulong)BitConverter.ToInt64(alg.GetCurrentHash(), 0)).ToString("X8", CultureInfo.InvariantCulture));
        }
    }
}

This will output BDD2AE7116C85A45 as the Murmur3 128-bit x64 hash of the string "foobar".

About

Implements the three variants of the Murmur3 hashing algorithm.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages