SharpHash 1.2.0
dotnet add package SharpHash --version 1.2.0
NuGet\Install-Package SharpHash -Version 1.2.0
<PackageReference Include="SharpHash" Version="1.2.0" />
<PackageVersion Include="SharpHash" Version="1.2.0" />
<PackageReference Include="SharpHash" />
paket add SharpHash --version 1.2.0
#r "nuget: SharpHash, 1.2.0"
#:package SharpHash@1.2.0
#addin nuget:?package=SharpHash&version=1.2.0
#tool nuget:?package=SharpHash&version=1.2.0
SharpHash

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.
Available Algorithms
Hashes
Cyclic Redundancy Checks
All CRC Variants from CRC3 to CRC64✔️
Checksums
Adler32✔️
Non-Cryptographic Hash Functions
32 bit hashes
APBKDRBernsteinBernstein1DEKDJBELFFNV✔️FNV1aJSJenkins3Murmur2MurmurHash3_x86_32OneAtTime✔️PJWRSRotatingSDBMShiftAndXorSuperFastXXHash32✔️
64 bit hashes
FNV64FNV1a64Murmur2_64SipHash64_2_4XXHash64✔️
128 bit hashes
MurmurHash3_x86_128MurmurHash3_x64_128SipHash128_2_4✔️
Cryptographic Hash Functions
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✔️
Key Derivation Functions
Password Hashing Schemes (Password Based Key Derivation Functions)
PBKDF2✔️Argon2 (2i, 2d and 2id variants)✔️Scrypt✔️
MAC
HMAC (all supported hashes)✔️KMAC (KMAC128, KMAC256)✔️Blake2MAC (Blake2BMAC, Blake2SMAC)✔️
XOF (Extendable Output Function)
Shake (Shake-128, Shake-256)✔️CShake (CShake-128, CShake-256)✔️Blake2X (Blake2XS, Blake2XB)✔️KMACXOF (KMAC128XOF, KMAC256XOF)✔️Blake3XOF✔️
Usage Examples
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;
}
}
}
Other Implementations
If you want implementations in other languages, you can check out these
- HashLib4Pascal by Ugochukwu Mmaduekwe
- HashLib4CPP by Mbadiwe Nnaemeka Ronald
- HashLib4Python by Mbadiwe Nnaemeka Ronald
Tip Jar
- 💵 Bitcoin:
1Mcci95WffSJnV6PsYG7KD1af1gDfUvLe6
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 is compatible. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
.NETCoreApp 2.0
- System.Runtime.CompilerServices.Unsafe (>= 4.7.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on SharpHash:
| Package | Downloads |
|---|---|
|
HDWallet.Algorand
Package Description |
|
|
BTCTrader.HDWallet.Aptos
Generic HD wallet for Aptos |
|
|
KFKLib.Hash
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.