/// <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)); } }
/// <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)); } }
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); }