A comprehensive hashing library for Object Pascal supporting cryptographic and non-cryptographic algorithms, checksums, MACs, KDFs, and XOFs.
HashLib4Pascal is a comprehensive hashing library for Object Pascal that provides a unified interface for computing cryptographic and non-cryptographic hash functions, checksums, MACs, KDFs, and XOFs. It solves the problem of needing multiple disparate libraries for different hashing needs by offering a single, extensible solution with support for both one-shot and incremental (streaming) hashing.
Object Pascal developers using Delphi or FreePascal who need reliable hashing for data integrity, password storage, message authentication, or checksum calculations in cross-platform applications.
Developers choose HashLib4Pascal for its extensive algorithm coverage, ease of use with both simple and advanced APIs, and strong cross-platform support. Its unique selling point is the combination of incremental hashing, cloneable state, and support for modern cryptographic functions like Argon2 and Blake3 in a single Pascal library.
Hashing for Modern Object Pascal
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes a wide range from CRC variants to modern cryptographic functions like Argon2 and Blake3, as detailed in the 'Available Algorithms' section, covering over 100 hash types.
Supports streaming data via TransformBytes, allowing efficient processing of large files or streams, demonstrated in the quick examples with chunk-based hashing.
Works with Delphi 2010+ and FreePascal 3.2.2+ on Windows, Linux, and macOS, ensuring broad usability across different Object Pascal environments as stated in the compatibility notes.
Enables mid-computation cloning for parallel or divergent processing, a unique feature highlighted in the key features for advanced use cases.
Restricted to specific compiler versions (Delphi 2010+ or FreePascal 3.2.2+), which may exclude projects using older or less common Pascal variants, as noted in prerequisites.
Requires manual setup like adding source paths or compiling IDE packages, which can be more involved than using drop-in libraries with pre-built binaries.
The vast number of algorithms and features might introduce unnecessary bloat for projects that only need a few hash functions, leading to larger binary sizes.
The README lacks performance benchmarks or optimization guides, leaving developers to test efficiency themselves, which could be a drawback for performance-critical applications.