SabreTools.Hashing 1.4.1

dotnet add package SabreTools.Hashing --version 1.4.1                
NuGet\Install-Package SabreTools.Hashing -Version 1.4.1                
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="SabreTools.Hashing" Version="1.4.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SabreTools.Hashing --version 1.4.1                
#r "nuget: SabreTools.Hashing, 1.4.1"                
#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 SabreTools.Hashing as a Cake Addin
#addin nuget:?package=SabreTools.Hashing&version=1.4.1

// Install SabreTools.Hashing as a Cake Tool
#tool nuget:?package=SabreTools.Hashing&version=1.4.1                

SabreTools.Hashing

Build and Test

This library comprises of methods and helpers to simplify the process of getting checksums and hashes from both files and streams.

Find the link to the Nuget package here.

Releases

For the most recent stable build, download the latest release here: Releases Page

For the latest WIP build here: Rolling Release

Internal Implementations

All hash and checksum types here have been written to ensure compatibility across all .NET versions. Some may have been adapted to ensure this compatibility. These can be treated as reference implementations, not always optimized.

Hash / Checksum Type Notes
Adler-32 Based on the zlib source code
CRC All CRC values documented here except for CRC-82 due to bit-length restrictions
Fletcher 16-, 32-, and 64-bit variants
FNV 32-, and 64-bit variants; 0, 1, and 1a algorithms
Message Digest MD2 and MD4 only
RIPEMD 128-, 160-, 256-, and 320-bit variants
Tiger 128-, 160-, and 192-bit variants; 3- and 4-pass; 0x01 and 0x80 (Tiger2) pad-initialized
xxHash xxHash-32 and xxHash-64 only

External Implementations

External implementations of hash and checksum types may not be compatible with all .NET versions. Please see the table below for more information about support.

Source Hash / Checksum Types Notes
Aaru.Checksums SpamSum Some code tweaks made to support older .NET versions
Blake3.NET BLAKE3 Used in net7.0 and above
System.IO.Hashing XXH3, XXH128 Used in net462 and above
System.Security.Cryptography MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256 Built-in library; SHA3-256, SHA3-384, SHA3-512, SHAKE128, and SHAKE256 are net8.0 and above only for supported platforms

Note: If all you care about is performance, I encourage you to forego this library and use the ones listed above directly instead.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  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 is compatible.  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 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.  net9.0 is compatible. 
.NET Core netcoreapp3.1 is compatible. 
.NET Framework net20 is compatible.  net35 is compatible.  net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 is compatible.  net46 was computed.  net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 is compatible.  net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on SabreTools.Hashing:

Package Downloads
SabreTools.Serialization

Serialization and deserialization helpers for various types

UnshieldSharp

Port of Unshield and unshieldv3 to C#

WiseUnpacker

Wise installer unpacker based on E_WISE and HWUN

BinaryObjectScanner

Protection scanning library

LibIRD

Library for ISO Rebuild Data

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on SabreTools.Hashing:

Repository Stars
SabreTools/MPF
Redumper/Aaru/DiscImageCreator GUI in C#
SabreTools/SabreTools
DAT management tool with advanced editing and sorting features
Version Downloads Last updated
1.4.1 521 12/16/2024
1.4.0 5,330 11/13/2024
1.3.0 253 11/12/2024
1.2.3 141 11/7/2024
1.2.2 2,473 10/24/2024
1.2.1 3,279 7/16/2024
1.2.0 8,365 3/25/2024
1.1.4 5,419 3/6/2024
1.1.3 266 3/5/2024
1.1.2 283 3/5/2024