UnveilTech

What Is Argon2id and Why It's Better Than PBKDF2

April 8, 2026 · 8 min read
← Back to Blog

When you type your master password into a password manager, something critical happens before anything else: that password is transformed into a cryptographic key through a process called key derivation. The algorithm used for this step determines how hard it is for an attacker to crack your master password by brute force. For decades, PBKDF2 was the standard. Today, Argon2id has replaced it — and the difference matters more than you might think.

What Key Derivation Functions Actually Do

A key derivation function (KDF) takes your password and produces a fixed-length cryptographic key. But it does not just hash the password once. It deliberately makes the process slow and resource-intensive so that an attacker who tries to guess your password by trying millions of possibilities per second is forced to spend enormous amounts of time and computing power.

Without a KDF, an attacker with a fast GPU could try billions of password guesses per second against a simple hash like SHA-256. With a properly configured KDF, that same GPU might manage only a few thousand — or even a few hundred — guesses per second. The math becomes impossible: a 12-character random password with thousands of guesses per second would take longer than the age of the universe to crack.

The purpose of a KDF is simple: make brute force too expensive to be worth attempting. Every microsecond of slowdown you add for a legitimate user translates to years of additional work for an attacker.

PBKDF2: The Veteran

PBKDF2 (Password-Based Key Derivation Function 2) was published in 2000 as part of RSA's PKCS #5 standard. It works by repeatedly applying a hash function — typically HMAC-SHA256 — to your password combined with a random salt. The number of repetitions is called the "iteration count."

A typical configuration might use 600,000 iterations of HMAC-SHA256. Each login requires running the hash function 600,000 times, which takes about half a second on a modern CPU. An attacker must do the same 600,000 iterations for every password guess.

PBKDF2 is used by many well-known services:

For 25 years, PBKDF2 served the industry well. But it has a fundamental weakness that modern hardware exploits ruthlessly.

The Problem with PBKDF2: GPUs and ASICs

PBKDF2's operations are purely computational — it performs millions of SHA-256 calculations, and each calculation requires very little memory. This is a critical flaw because modern GPUs are designed to perform exactly this kind of work at massive scale.

A single high-end GPU (like an NVIDIA RTX 4090) contains thousands of processing cores. Each core can run PBKDF2 independently because the algorithm needs almost no memory per instance. An attacker with a few GPUs can try passwords thousands of times faster than a regular CPU.

Worse, specialized hardware called ASICs (Application-Specific Integrated Circuits) can be built to compute SHA-256 even faster. Bitcoin mining ASICs, which compute SHA-256 at staggering rates, demonstrate that purpose-built hardware can outperform general-purpose processors by orders of magnitude for simple hash operations.

PBKDF2's fatal flaw: it is compute-hard but not memory-hard. Attackers can parallelize it across thousands of GPU cores or build custom ASICs to crack it far faster than the algorithm's designers intended.

Argon2id: Built to Resist Modern Attacks

Argon2 was the winner of the Password Hashing Competition in 2015, a multi-year open competition organized by cryptographers to find a successor to PBKDF2, bcrypt and scrypt. The competition attracted 24 submissions from security researchers worldwide. Argon2 won because it addressed the GPU and ASIC problem head-on.

Argon2 comes in three variants:

Argon2id has three key parameters:

Why Memory-Hardness Changes Everything

This is the core insight behind Argon2id: GPUs have enormous compute power but limited memory per core.

An NVIDIA RTX 4090 has 16,384 CUDA cores — but only 24 GB of total memory. If Argon2id requires 64 MB per hash, that GPU can only run about 375 instances in parallel (24 GB / 64 MB). Compare this to PBKDF2, where each instance needs only a few kilobytes and all 16,384 cores can work simultaneously.

The memory requirement effectively neutralizes the GPU's massive parallelism. Instead of being thousands of times faster than a CPU, the GPU is reduced to roughly the same speed because it runs out of memory long before it runs out of cores.

ASICs face the same problem. Building an ASIC with lots of fast memory is exponentially more expensive than building one with lots of fast compute units. The economics of custom hardware attacks collapse when memory is the bottleneck.

Think of it this way: PBKDF2 asks the attacker to do lots of math. Argon2id asks the attacker to rent lots of RAM. Math is cheap at scale (GPUs). RAM is expensive at scale (you cannot share it between cores). That is why memory-hardness wins.

Argon2id vs PBKDF2: Side-by-Side Comparison

Property PBKDF2 Argon2id
Published 2000 (PKCS #5 v2.0) 2015 (Password Hashing Competition winner)
Underlying primitive HMAC-SHA256 Blake2b + memory-hard construction
Compute hardness Yes (iteration count) Yes (time cost parameter)
Memory hardness No (a few KB per instance) Yes (configurable, typically 64 MB+)
GPU resistance Weak (fully parallelizable) Strong (memory bottleneck)
ASIC resistance Weak (simple to implement in hardware) Strong (requires expensive on-chip memory)
Side-channel resistance Moderate Strong (Argon2id hybrid mode)
Parallelism support No Yes (configurable lanes)
OWASP recommendation (2024) Acceptable (600K+ iterations) Preferred
RFC RFC 8018 RFC 9106

Real-World Impact: What the Numbers Mean

Let us put concrete numbers on the difference. Assume an attacker has a cluster of 8 high-end GPUs (a realistic budget for organized cybercrime).

Against PBKDF2 (600,000 iterations, SHA-256):

Against Argon2id (time=3, memory=64 MB, parallelism=4):

The difference is stark. Argon2id reduces the attacker's throughput by 250x or more compared to PBKDF2 with the same hardware budget. A password that falls in weeks under PBKDF2 holds for centuries under Argon2id.

These numbers assume a mediocre password. With a strong 14+ character master password, both algorithms provide excellent protection. But Argon2id gives you a much wider safety margin — and safety margins matter when the stakes are your entire vault.

What About bcrypt and scrypt?

Two other KDFs deserve mention. bcrypt (1999) introduced a small memory requirement (4 KB) that was innovative for its time but is negligible by modern GPU standards. It remains widely used and is far better than PBKDF2, but its fixed memory footprint limits its GPU resistance.

scrypt (2009) was the first truly memory-hard KDF and a direct predecessor to Argon2. It introduced the idea of requiring large amounts of memory. However, scrypt has a rigid relationship between its time and memory parameters — you cannot tune them independently. It also lacks the side-channel resistance of Argon2id and was not designed for parallelism.

Argon2id effectively supersedes both. It offers tunable memory, tunable time, tunable parallelism and resistance to both GPU attacks and side-channel attacks. The cryptographic community has broadly converged on Argon2id as the recommended choice for new implementations.

What UnveilPass Uses

UnveilPass uses Argon2id for key derivation with the following parameters:

These parameters are aligned with OWASP's recommended configuration and provide strong protection against GPU and ASIC attacks while remaining fast enough for a comfortable login experience on modern devices (approximately 0.5 to 1 second).

The key derivation runs entirely in your browser using Argon2id compiled to WebAssembly (WASM). Your master password never leaves your device. The 64-byte output is split: the first 32 bytes become the authentication key (sent to the server to prove your identity), while the full hash is fed into HKDF-SHA256 to derive the Key Encryption Key (KEK) that protects your vault.

This separation is important: the authentication key and the encryption key are cryptographically independent. Even if the authentication key were somehow leaked, it could not be used to derive the KEK or decrypt your vault.

Client-side Argon2id is rare. Most password managers run key derivation on the server, which means your password (or a derivative) must be transmitted. UnveilPass runs Argon2id in your browser via WebAssembly, so the server never processes your master password in any form.

How to Choose a KDF: What to Look For

If you are evaluating password managers or building a system that handles passwords, here is what to look for:

The Bottom Line

Key derivation functions are the front door to your encrypted vault. PBKDF2 served the industry for 25 years, but it was designed in an era before consumer GPUs could perform trillions of operations per second. Argon2id was built for today's threat landscape: memory-hard, time-hard, parallelism-aware and resistant to both GPU clusters and custom ASICs.

The difference between PBKDF2 and Argon2id is not academic. It is the difference between a password that falls in weeks and one that holds for centuries. When your entire digital life sits behind a single master password, that margin matters.

Your Vault, Protected by Argon2id

UnveilPass uses client-side Argon2id with 64 MB memory cost. Your master password never leaves your browser.

Create Your Vault