SharpHash is a C# hashing library that provides a fluent interface for computing hashes and checksums of strings, files, streams, bytearrays and untyped data to mention but a few.
It also supports Incremental Hashing, Cloning, NullDigest and HashName Builder.
All CRC Variants from CRC3 to CRC64✔️
Adler32✔️
APBKDRBernsteinBernstein1DEKDJBELFFNV✔️FNV1aJSJenkins3Murmur2MurmurHash3_x86_32OneAtTime✔️PJWRSRotatingSDBMShiftAndXorSuperFastXXHash32✔️
FNV64FNV1a64Murmur2_64SipHash64_2_4XXHash64✔️
MurmurHash3_x86_128MurmurHash3_x64_128SipHash128_2_4✔️
MD2✔️MD4✔️MD5✔️SHA-0✔️SHA-1✔️SHA-2 (224, 256, 384, 512, 512-224, 512-256)✔️GOST 34.11-94✔️GOST R 34.11-2012 (AKA Streebog) (256, 512)✔️Grindahl (256, 512)✔️HAS160✔️RIPEMD (128, 256, 256, 320)✔️Tiger (128, 160, 192 (Rounds 3, 4, 5))✔️Tiger2 (128, 160, 192 (Rounds 3, 4, 5))✔️Snefru (128, 256)✔️Haval (128, 160, 192, 224, 256 (Rounds 3, 4, 5))✔️Panama✔️RadioGatun (RadioGatun32, RadioGatun64)✔️WhirlPool✔️Blake2B (160, 256, 384, 512)✔️Blake2S (128, 160, 224, 256)✔️SHA-3 (224, 256, 384, 512)✔️Keccak (224, 256, 288, 384, 512)✔️Blake2BP✔️Blake2SP✔️Blake3✔️
PBKDF2✔️Argon2 (2i, 2d and 2id variants)✔️Scrypt✔️
HMAC (all supported hashes)✔️KMAC (KMAC128, KMAC256)✔️Blake2MAC (Blake2BMAC, Blake2SMAC)✔️
Shake (Shake-128, Shake-256)✔️CShake (CShake-128, CShake-256)✔️Blake2X (Blake2XS, Blake2XB)✔️KMACXOF (KMAC128XOF, KMAC256XOF)✔️Blake3XOF✔️
usingSharpHash.Base;usingSharpHash.Interfaces;usingSystem;usingSystem.Text;namespaceProgram{publicclassHello{publicstaticvoidMain(){// Chaining modestringresult=HashFactory.Crypto.CreateMD5().ComputeString("Hello C#",Encoding.UTF8).ToString();// Incremental modeIHashhash=HashFactory.Crypto.CreateMD5();hash.Initialize();hash.TransformString("Hello",Encoding.UTF8);hash.TransformString(" C#",Encoding.UTF8);stringresult_2=hash.TransformFinal().ToString();boolcheck=result==result_2;// Using the HashName Builder variationIHashhash_builder=HashFactory.CreateHash("md5");stringresult_3=hash_builder.ComputeString("Hello C#",Encoding.UTF8).ToString();boolcheck_2=result==result_3;}}}If you want implementations in other languages, you can check out these
- HashLib4Pascal by Ugochukwu Mmaduekwe
- HashLibPlus by Mbadiwe Nnaemeka Ronald
- 💵 Bitcoin:
1Mcci95WffSJnV6PsYG7KD1af1gDfUvLe6