Nethermind.Multiformats.Hash 1.5.2

dotnet add package Nethermind.Multiformats.Hash --version 1.5.2                
NuGet\Install-Package Nethermind.Multiformats.Hash -Version 1.5.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nethermind.Multiformats.Hash" Version="1.5.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Nethermind.Multiformats.Hash --version 1.5.2                
#r "nuget: Nethermind.Multiformats.Hash, 1.5.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Nethermind.Multiformats.Hash as a Cake Addin
#addin nuget:?package=Nethermind.Multiformats.Hash&version=1.5.2

// Install Nethermind.Multiformats.Hash as a Cake Tool
#tool nuget:?package=Nethermind.Multiformats.Hash&version=1.5.2                

Multiformats.Hash (cs-multihash)

alternate text is missing from this package README image alternate text is missing from this package README image NuGet alternate text is missing from this package README image Codecov

Multihash implementation in C# .NET Standard 1.6 compliant.

This is not a general purpose hashing library, but a library to encode/decode Multihashes which is a "container" describing what hash algorithm the digest is calculated with. The library also support calculating the digest, but that is not it's main purpose. If you're looking for a library that supports many algorithms and only want the raw digest, try BouncyCastle or the built-ins of the .net framework.

To be clear, when you calculate a digest (using Sum) with this library, you will get a byte array including a prefix with the properties of the algorithm used (type and length).

There's a CLI version that you can use to compute files or direct input from the command line. This CLI tool passes the sharness tests here.

Table of Contents


PM> Install-Package Multiformats.Hash

dotnet add package Multiformats.Hash


// decode a multihash formatted byte array
Multihash mh = Multihash.Decode(bytes);

// decode a multihash formatted string
Multihash mh = Multihash.Parse(str);
bool ok = Multihash.TryParse(str, out mh);

// encode a digest to multiformat byte array
byte[] bytes = Multihash.Encode(digest, HashType.SHA1);
byte[] bytes = Multihash.Encode<SHA1>(digest);

// calculate digest
Multihash mh = Multihash.Sum<SHA1>(bytes);

// verify
bool isValid = mh.Verify(bytes);

Supported hash algorithms

  • ID
  • MD4
  • MD5
  • SHA1
  • SHA2_256
  • SHA2_512
  • SHA3_224
  • SHA3_256
  • SHA3_384
  • SHA3_512
  • SHAKE_128
  • SHAKE_256
  • KECCAK_224
  • KECCAK_256
  • KECCAK_384
  • KECCAK_512
  • BLAKE2B-(bits) (8-512)
  • BLAKE2S-(bits) (8-256)
  • DBL_SHA2_256
  • MURMUR3_32/128
  • SKEIN256-(bits) (8-256)
  • SKEIN512-(bits) (8-512)
  • SKEIN1024-(bits) (8-1024)


Captain: @tabrath.


Contributions welcome. Please check out the issues.

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.

Small note: If editing the README, please conform to the standard-readme specification.


MIT © 2017-2018 Trond Bråthen

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.2 1,285 6/25/2024
1.5.1 2 6/25/2024