Skip to content

Repository files navigation

fingerprint-builder

ci nuget nuget codecov license

Inspired by he-dev/reusable:FingerprintBuilder

Installation

 dotnet add package FingerprintBuilder

How to Use

Declare class:

class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Configure Func:

var sha256 = FingerprintBuilder<User>
    .Create(SHA256.Create())
    .For(p => p.FirstName)
    .For(p => p.LastName)
    .Build();

Get hash:

var user = new User { FirstName = "John", LastName = "Smith" };
var hash = sha256(user).ToLowerHexString();
Console.WriteLine(hash); // 62565a67bf16004038c502eb68907411fcf7871c66ee01a1aa274cc18d9fb541

Benchmarks

BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
.NET SDK 10.0.302
  [Host]     : .NET 10.0.10 (10.0.10, 10.0.1026.32716), X64 RyuJIT x86-64-v3
  DefaultJob : .NET 10.0.10 (10.0.10, 10.0.1026.32716), X64 RyuJIT x86-64-v3
Method Mean Error StdDev Median Gen0 Allocated
MD5_Model_To_Hex 1.145 μs 0.0038 μs 0.0032 μs 1.144 μs 0.0725 1.21 KB
SHA1_Model_To_Hex 1.166 μs 0.0078 μs 0.0070 μs 1.166 μs 0.0820 1.37 KB
SHA256_Model_To_Hex 1.381 μs 0.0071 μs 0.0066 μs 1.382 μs 0.1087 1.8 KB
SHA512_Model_To_Hex 2.287 μs 0.0068 μs 0.0060 μs 2.287 μs 0.1831 2.99 KB

License

All contents of this package are licensed under the MIT license.

About

Compute hash for specified .NET object

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages