Need help with HashLib4Pascal?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Xor-el
128 Stars 38 Forks MIT License 322 Commits 0 Opened issues

Description

Hashing for Modern Object Pascal

Services available

!
?

Need anything else?

Contributors list

No Data

HashLib4Pascal: Hashing for Modern Object Pascal License

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 Build Status

Available Algorithms

### Hashes

Cyclic Redundancy Checks
  • All CRC Variants from CRC3 to CRC64
Checksums
  • Adler32
Non-Cryptographic Hash Functions

32 bit hashes
  • AP
    BKDR
    Bernstein
    Bernstein1
    DEK
    DJB
    ELF
    FNV
  • FNV1a
    JS
    Jenkins3
    Murmur2
    MurmurHash3_x86_32
    OneAtTime
  • PJW
    RS
    Rotating
    SDBM
    ShiftAndXor
    SuperFast
    XXHash32
64 bit hashes
  • FNV64
    FNV1a64
    Murmur2_64
    SipHash2_4
    XXHash64
128 bit hashes
  • MurmurHash3_x86_128
    MurmurHash3_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

Tip Jar


  • :dollar: Bitcoin:
    1MhFfW7tDuEHQSgie65uJcAfJgCNchGeKf
  • :euro: Ethereum:
    0x6c1DC21aeC49A822A4f1E3bf07c623C2C1978a98
  • :pound: Pascalcoin:
    345367-40

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.