Argon2 hash will appear here
Enter a password and click Generate| Use Case | Memory | Time | Parallel |
|---|---|---|---|
| Interactive login | 4 MB | 3 | 1 |
| Moderate (Default) | 64 MB | 3 | 4 |
| Sensitive data | 256 MB | 5 | 4 |
Every coffee helps keep the servers running. Every book sale funds the next tool I'm dreaming up. You're not just supporting a site — you're helping me build what developers actually need.
Argon2 is a password hashing algorithm that won the Password Hashing Competition (PHC) in 2015. Designed by Alex Biryukov, Daniel Dinu, and Dmitry Khovratovich, it's specifically built to resist GPU, ASIC, and side-channel attacks.
Data-dependent memory access. Maximum GPU resistance but vulnerable to side-channel attacks. Best for cryptocurrencies and backend applications.
Data-independent memory access. Resistant to side-channel attacks but less GPU resistant. Good for key derivation.
Hybrid approach combining both. First pass uses Argon2i, subsequent passes use Argon2d. Best for password hashing.
| Algorithm | Memory-Hard | GPU Resistant | Side-Channel Safe | Recommendation |
|---|---|---|---|---|
| Argon2id | Yes | High | Yes | Best choice for new applications |
| Scrypt | Yes | High | Partial | Good alternative, proven in production |
| BCrypt | Limited | Medium | Yes | Still widely used, fixed 4KB memory |
| PBKDF2 | No | Low | Yes | Legacy, avoid for new applications |
Python (argon2-cffi)
from argon2 import PasswordHasher
ph = PasswordHasher()
hash = ph.hash("password")
ph.verify(hash, "password")
Node.js (argon2)
const argon2 = require('argon2');
const hash = await argon2.hash("password");
const valid = await argon2.verify(hash, "password");