You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HashLib4Pascal is an Object Pascal hashing library released under the permissive MIT License which provides an easy to use interface for computing hashes and checksums of data. It also supports state based (incremental) hashing.
HashLib4Pascal's goal is to be the best option for hashing in Object Pascal by offering various hashing primitives via an easy to use API to Object Pascal developers.
Development is coordinated on GitHub and contributions are welcome. If you need help, please open an issue here.
Build Status
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_64SipHash2_4XXHash64
128 bit hashes
MurmurHash3_x86_128MurmurHash3_x64_128
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, 160, 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
Supported Compilers
FreePascal 3.0.0+
Delphi 2010+
Other Implementations
If you want implementations in other languages, you can check out these