Storing Passwords Properly: Why Argon2
By The Alt Auth Team

A password database will eventually be read by someone who should not have it. That is the assumption everything here is built on. The question is not whether the file leaks — it is what an attacker can do in the weeks after it does.
Hashing is not encryption
Encryption is reversible by design; anything you encrypt, you can decrypt, and so can whoever takes the key. Password hashing is deliberately one-way. You never recover the password — you re-hash what the user typed and compare. If your system can email someone their existing password, it is not hashing them.
Why Argon2 and not SHA-256
General-purpose hashes are built to be fast, which is precisely wrong here: fast means billions of guesses per second on commodity hardware. Argon2 is deliberately slow and deliberately memory-hungry, so an attacker cannot simply throw more GPUs at the problem. It is the current recommendation, and it has been for years.
- Unique salt per user, always — otherwise identical passwords hash identically.
- Tune the cost parameters to your hardware, then revisit them; hardware gets faster, your settings do not.
- Never log the password, not even in a debug branch, not even once.
- Compare in constant time. A comparison that returns early leaks information.
Alt Auth uses Argon2 on every plan, including the free one. Security defaults that only appear on an enterprise tier are not defaults.