A modern hash function like SHA-256 is built to be fast. That's a feature for checksums and a liability for passwords: if computing a hash takes a microsecond, an attacker with a stolen database and a GPU can try billions of candidate passwords per second against it. Speed that helps you also helps them.
Key derivation functions like PBKDF2 exist to break that symmetry. Instead of hashing your master key once, PBKDF2-SHA-256 runs the hash function in a loop — in Velora Vault's case, 600,000 times — for every single derivation. What takes your device a fraction of a second to do once, at login, becomes a genuinely expensive operation to repeat billions of times during an offline guessing attack.
Why 600,000, specifically
OWASP's current guidance for PBKDF2-SHA-256 recommends a minimum of 600,000 iterations, calibrated against the hardware attackers realistically have access to today. We didn't pick a round number for the sake of it — it's the floor a credible security review holds this kind of key derivation to right now. As commodity hardware gets faster, that number is expected to climb, and ours will move with it.
The salt and IV do a different job
Iteration count slows down guessing a single password. A fresh 16-byte salt per encryption operation stops a different attack: precomputed lookup tables. Without a salt, an attacker can hash every common password once, in advance, and check any stolen hash against that table instantly. A unique salt per record means that precomputation has to be redone from scratch for every single item — which, at scale, makes the shortcut worthless. The fresh 12-byte IV for AES-256-GCM is a separate requirement again: it ensures that encrypting the same plaintext twice never produces the same ciphertext, which matters for both security and for not leaking patterns about what you've stored.
None of these three mechanisms — iteration count, salt, IV — substitute for the others. They defend against different attacks, which is why all three run on every single encryption operation in the vault, not just once at setup.