-
Notifications
You must be signed in to change notification settings - Fork 1
Home
This document serves as the official repository of information for the HashifyNET library. It is intended to provide comprehensive guidance and technical specifications for its utilization.
HashifyNET is a C# library engineered to furnish a standardized interface for a comprehensive suite of cryptographic and non-cryptographic hashing algorithms. The library incorporates pre-built, production-ready implementations of numerous established hash functions to ensure both computational performance and operational reliability.
A commitment to quality is a foundational principle of the library's development. All functional components are subjected to rigorous verification by means of the xUnit testing framework, with a mandated requirement of 100% code coverage for each release version. Furthermore, all public and protected members are annotated with Visual Studio-compatible XML comments to facilitate comprehension and integration.
HashifyNET is the designated successor to the Data.HashFunction library. While API continuity has been substantially maintained to ensure a familiar development experience, significant architectural improvements have been instituted:
- Consolidated Dependencies: The dependency architecture has undergone a fundamental revision. All constituent algorithms are now aggregated within a single assembly and distributed as a singular NuGet package, designated HashifyNET.
-
Centralized Factory Model: The antecedent model, which utilized discrete factories for each hash function, has been superseded by a singular, modular, and efficient factory class,
HashifyNet.HashFactory, for all instantiation operations. - Expanded Algorithm Support: The library's functional scope has been augmented through the integration of eleven additional hash algorithms, including but not limited to Adler32, Blake3, Keccak, and Argon2id.
The library provides an extensive collection of hashing algorithms, which are taxonomically classified as follows:
- Cryptographic: Argon2id, Blake2b, Blake3, Gost, Keccak (SHA-3), SipHash, SM3, Tiger, Whirlpool
- Non-Cryptographic: Adler32, Bernstein, CityHash, CRC, ELF64, FarmHash, FNV-1, Jenkins, MetroHash, MurmurHash (1, 2, 3), SpookyHash, xxHash
Important
A definitive enumeration of all implemented algorithms is available for consultation in the project's primary README file.
Integration of the library is accomplished via the NuGet package manager. The requisite package may be installed by executing the following command:
dotnet add package HashifyNET --version 7.0.1
<PackageReference Include="HashifyNET" Version="7.0.1" />
For more information, please visit our NuGet package.
Access to all hash function implementations is provisioned through the HashifyNet.HashFactory class. Instantiation of a given algorithm may be performed through the use of generic type parameters or by passing a System.Type object.
For usage examples, please check the page of the version you are using.
This library adheres strictly to the Semantic Versioning 2.0.0 specification. The versioning scheme is defined as follows:
- PATCH: An increment of the PATCH component signifies internal modifications exclusively, such as defect corrections. Such changes are guaranteed to maintain forward and backward compatibility with the public API.
- MINOR: An increment of the MINOR component indicates the introduction of new functionality, which may not be backwards-compatible with preceding versions.
- MAJOR: An increment of the MAJOR component indicates that breaking changes have been introduced to the public-facing API. It is incumbent upon consumers to consult the release notes to ascertain the requisite modifications.
Please refer to semver.org for further information regarding the versioning protocol.
Contributions to the project are permissible. Proposals for modifications, notifications of defects, or code submissions may be tendered through the designated GitHub repository via issues and pull requests.
There are no specialized prerequisites for submitting change proposals or defect notifications. Code contributions must conform to the established methodologies and stylistic conventions of the existing codebase and must include comprehensive XML comments for all new or modified public and protected members.
For technical support, inquiries, or discourse about the library, a dedicated Discord server is maintained for community engagement.
Discord Server: https://discord.gg/PrKery9
HashifyNET is distributed under the terms of the MIT license. The full text of this license is available for review in the LICENSE file resident in the root of the source repository.
© 2025, Deskasoft International. All rights reserved.