Cryptology Engine

Password Hashing & KDF

PBKDF2, bcrypt, scrypt, Argon2 (password hashing) and HKDF (key derivation) algorithms

What is Password Hashing & KDF?

Password hashing is a special type of hashing used to securely store user passwords. Unlike normal hash algorithms, password hashing algorithms are intentionally slow and add random data called "salt". This way, even if an attacker steals the password database, it becomes very difficult and time-consuming to crack the passwords. Modern password hashing algorithms provide protection against brute-force attacks and are critical for secure password storage.

Use Cases

  • Web application password storage
  • User authentication systems
  • Database security
  • Mobile application security
  • API authentication
  • Password management systems
Key Features
  • Intentional slowness (brute-force protection)
  • Salt required, pepper optional
  • One-way function
  • Configurable difficulty
  • Memory-hard algorithms (Argon2)
  • Secure password storage
  • Argon2id recommended for new systems; minimum parameters: m≥64–128 MiB, t≥2–3, p≥1
  • For compatibility: PBKDF2-HMAC-SHA256, iterations ≥100k+
Algorithm Comparison
Algorithm
Security
Speed
Use Cases
PBKDF2 (HMAC-SHA256/512 seçilebilir)HighSlow
General-purpose password hashingSystems requiring compatibilityFor compatibility: PBKDF2-HMAC-SHA256, iterations ≥100k+
bcryptHighSlow
Web applicationsMedium security requirements
Argon2idVery HighSlow
Recommended for new systemsHigh-security applicationsModern systemsMinimum parameters: m≥64–128 MiB, t≥2–3, p≥1

* Comparisons are relative to reference/hardware acceleration on 64-bit CPU

PBKDF2

NIST-recommended, widely used password hashing algorithm. HMAC-SHA256/512 selectable.

bcrypt

Blowfish-based password hashing algorithm.

scrypt

Memory-hard password hashing algorithm.

Argon2

Modern, memory-hard password hashing algorithm. Recommended for new systems.

HKDF (Key Derivation)

KDF for deriving keys from already-secure key material, NOT for password hashing. Used in TLS, IPsec, and protocol design.

Related Standards
  • NIST SP 800-132
  • RFC 8018
  • RFC 2898
  • Password Hashing Competition