Beispiel #1
0
 /// <summary>
 /// Computes the FNV-1a 32-bit hash for the specified data.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns>The FNV-1a 32-bit hash of the specified data.</returns>
 // ReSharper disable once InconsistentNaming
 private static string Fnv1a32s(this string data)
 {
     using (HashAlgorithm alg = new Fnv1a32())
     {
         return("0x"
                + ((uint)ToInt32(alg.ComputeHash(UTF8.GetBytes(data)), 0)).ToString("X8", InvariantCulture));
     }
 }
Beispiel #2
0
 /// <summary>
 /// Asynchronously computes the FNV-1a 32-bit hash for the specified data.
 /// </summary>
 /// <param name="data">The data.</param>
 /// <returns>An asynchronous <see cref="Task{TResult}"/> containing the FNV-1a 32-bit hash of the specified data.</returns>
 // ReSharper disable once InconsistentNaming
 private static async Task <string> Fnv1a32sAsync(this string data)
 {
     using (HashAlgorithm alg = new Fnv1a32())
     {
         return(await Task.FromResult("0x"
                                      + ((uint)ToInt32(alg.ComputeHash(UTF8.GetBytes(data)), 0)).ToString("X8", InvariantCulture)).ConfigureAwait(false));
     }
 }
Beispiel #3
0
        public static string ToHashFnv1a32(this string text, Fnv1a32 hasher = null)
        {
            text = text.Trim().ToLowerInvariant() + "\0";
            var bytes_encoded = Encoding.ASCII.GetBytes(text);

            if (hasher is null)
            {
                hasher = new Fnv1a32(fnvPrime: FnvPrime, fnvOffsetBasis: FnvOffsetBasis);
            }
            var byte_hash  = hasher.ComputeHash(bytes_encoded);
            var uint32     = BitConverter.ToUInt32(byte_hash, 0);
            var uint32_hex = string.Format("0x{0:X}", uint32);

            // var str = "0x" + BitConverter.ToString(byte_hash).Replace("-", "");
            return(uint32_hex);
        }