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.
All CRC Variants from CRC3 to CRC64
Adler32
-
APBKDRBernsteinBernstein1DEKDJBELFFNV -
FNV1aJSJenkins3Murmur2MurmurHash3_x86_32OneAtTime -
PJWRSRotatingSDBMShiftAndXorSuperFastXXHash32
FNV64FNV1a64Murmur2_64SipHash2_4XXHash64
MurmurHash3_x86_128MurmurHash3_x64_128
-
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
-
PBKDF2 -
Argon2 (2i, 2d and 2id variants) -
Scrypt
-
HMAC (all supported hashes) -
KMAC (KMAC128, KMAC256) -
Blake2MAC (Blake2BMAC, Blake2SMAC)
-
Shake (Shake-128, Shake-256) -
CShake (CShake-128, CShake-256) -
Blake2X (Blake2XS, Blake2XB) -
KMACXOF (KMAC128XOF, KMAC256XOF) -
Blake3XOF
-
FreePascal 3.0.0+ -
Delphi 2010+
If you want implementations in other languages, you can check out these
- HashLib4CPP by Mbadiwe Nnaemeka Ronald
- 💵 Bitcoin:
1MhFfW7tDuEHQSgie65uJcAfJgCNchGeKf - 💶 Ethereum:
0x6c1DC21aeC49A822A4f1E3bf07c623C2C1978a98 - 💷 Pascalcoin:
345367-40