Hacker News new | ask | show | jobs
by joren485 1656 days ago
> I'm not sure if bcrypt/blowfish is still the recommended algorithm or there's newer better ones

While bcrypt is already much, much better than using MD5 or SHA256, the best practice is to use Argon2.

In practice, it is more important to use a hashing algorithm that is designed for passwords (e.g. bcrypt, argon2, scrypt) than it is to choose the best one. As this breach shows, many sites are still using insecure hashes, like MD5, because it worked 15 years ago.

1 comments

Which mode do you/would you use? Hybrid?

I haven't had to write any password storage code since before Argon2 won the 2015 competition so I haven't gone deep on the "side channel attack vs. memory hardness" tradeoff question when picking the mode. I am curious which mode others are using.

Hybrid (Argon2id) is probably the safest bet if you are unsure.

The specific modes are useful dependent on the threat model you are protecting against. Argon2i protects better against timing/side-channel attacks and Argon2d protects better against brute-forcing attacks.

In my opinion, a developer should (in most cases) focus on application security instead of picking the perfect hashing algorithm, as application security is far more crucial.

Argon2ID