All guides
EncryptionDeep dive

Argon2id vs bcrypt vs PBKDF2: how a password becomes a key

Why password managers and encryption tools run your passphrase through a slow, memory-hard function, and how Argon2id compares to bcrypt and PBKDF2.

· 2 min read

Encryption needs a key: 32 random bytes. People can't remember 32 random bytes, so tools ask for a passphrase and turn it into a key with a key derivation function (KDF). Which KDF is used decides how hard it is for an attacker to guess your passphrase.

Why it has to be slow

Someone who steals an encrypted file or vault can try passphrases offline, as fast as their hardware allows. A good KDF makes each guess expensive: a fraction of a second for you once, billions of times too slow for an attacker running through a word list.

The three you'll meet

PBKDF2bcryptArgon2id
Age200019992015 (won the Password Hashing Competition)
Slows guessing withMany iterationsIterations plus a little memoryIterations and lots of memory
Resistance to GPU and custom hardwareLowMediumHigh
Tunable memoryNoNo (fixed, small)Yes

PBKDF2

Runs a hash function (such as SHA-256) many thousands of times. Simple and widely available, but graphics cards can run huge numbers of these in parallel, because each guess needs almost no memory.

bcrypt

Better than PBKDF2 against GPUs thanks to a small memory requirement, and still a solid choice for website login hashes. Its memory use is fixed and small, and it only uses the first 72 bytes of a password.

Argon2id

Designed so each guess needs a chosen amount of memory (tens or hundreds of megabytes) as well as time. Memory is expensive to multiply on GPUs and custom chips, so attackers lose most of their advantage. The "id" variant mixes two approaches to resist both side-channel and trade-off attacks, and is the recommended default today.

What Potent Cipher uses

Your vault passphrase and every .pcipher file passphrase go through Argon2id, starting at 64 MiB of memory and 3 passes. The settings are stored next to the salt, so they can be raised in the future without breaking older files. A random salt per vault or file means attackers can't precompute guesses once and reuse them on everyone.

The part only you control

No KDF rescues "password123". Argon2id multiplies the cost of each guess; a long, random passphrase multiplies the number of guesses. You need both. The full design is on our security page, and the code is open to read.

Put these guides to work

Your first 100 secrets are free, encrypted on your device with a key we never see.

  • No credit card
  • Zero-knowledge
  • Free file encryption