_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
References Technologies Blog Know-how Tools
About Collaboration Careers
CS EN
Let's talk

Password Hashing — bcrypt, Argon2

28. 09. 2025 1 min read intermediate

MD5 and SHA1 are not password hashing functions. GPU crackers break billions of SHA-256 hashes per second. You need a slow algorithm.

Comparison

  • Argon2id: OWASP recommended, memory-hard, most secure
  • bcrypt: Time-tested, 72B limit
  • scrypt: Memory-hard, less commonly used
  • PBKDF2: FIPS compatible, but GPU-friendly

from argon2 import PasswordHasher ph = PasswordHasher( time_cost=3, # iterations memory_cost=65536, # 64 MB parallelism=4, # threads hash_len=32, salt_len=16, type=argon2.Type.ID # hybrid ) hash = ph.hash(“password”) ph.verify(hash, “password”) # True or VerifyMismatchError

bcrypt

import bcrypt hashed = bcrypt.hashpw(b”password”, bcrypt.gensalt(rounds=12)) bcrypt.checkpw(b”password”, hashed) # True

Key Takeaway

Argon2id for new projects, bcrypt if you need compatibility. Never MD5, SHA1, SHA256 for passwords.

securitypasswordhashingargon2
Share:

CORE SYSTEMS tým

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.