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
✔️AP
BKDR
Bernstein
Bernstein1
DEK
DJB
ELF
FNV
✔️
FNV1a
JS
Jenkins3
Murmur2
MurmurHash3_x86_32
OneAtTime
✔️
PJW
RS
Rotating
SDBM
ShiftAndXor
SuperFast
XXHash32
✔️
FNV64
FNV1a64
Murmur2_64
SipHash64_2_4
XXHash64
✔️MurmurHash3_x86_128
MurmurHash3_x64_128
SipHash128_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
✔️
using SharpHash.Base; using SharpHash.Interfaces; using System; using System.Text; namespace Program { public class Hello { public static void Main() { // Chaining mode string result = HashFactory.Crypto.CreateMD5() .ComputeString("Hello C#", Encoding.UTF8).ToString(); // Incremental mode IHash hash = HashFactory.Crypto.CreateMD5(); hash.Initialize(); hash.TransformString("Hello", Encoding.UTF8); hash.TransformString(" C#", Encoding.UTF8); string result_2 = hash.TransformFinal().ToString(); bool check = result == result_2; // Using the HashName Builder variation IHash hash_builder = HashFactory.CreateHash("md5"); string result_3 = hash_builder.ComputeString("Hello C#", Encoding.UTF8).ToString(); bool check_2 = result == result_3; } } }
If you want implementations in other languages, you can check out these
1Mcci95WffSJnV6PsYG7KD1af1gDfUvLe6
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4