3 ms·
The issue here isn't so much the password strength, but the algorithm used to hash the password. A good password hashing algorithm like scrypt takes a long time
by zemnmez 6y ago
The issue here isn't so much the password strength, but the algorithm used to hash the password. A good password hashing algorithm like scrypt takes a long time to make a single guess, even if the input is simple, and since every single password has its own salt, it has to be re-calculated for every password, even if all of them are 'P@ssword'.
- kohtatsu 6y agoIt's up to the site operator to tune the cost; it's generally recommended 100-250ms depending on how much you're willing to make your users wait. FWIW there are ASICs now that will get orders of magnitude faster hash throughput than your servers.
- zemnmez 6y agoThis is true, except for scrypt, which is very tough to make ASICs for. As for bcrypt, it's true that ASICS can go very fast, but you ultimately have a massive advantage as defender here. An attacker needs to try billions of combinations per hash, but you can simply take a whole second of CPU time (scaled to your current load, roughly) if you want -- that's not a lot for a user, but for an attacker taking several billion of even half a second makes cracking very, very hard.
- a1369209993 6y agoYou aren't technically wrong (the algorithm can add some number of bits of effective security), but that's still horribly misleading. "P@ssw0rd" is emphatically not a good password, and "because it has lowercase, uppercase, numeric and non-alphanumeric values" does not (significantly) improve a password. See https://www.explainxkcd.com/wiki/index.php/936 https://www.explainxkcd.com/wiki/index.php/936 for a specific example. (But note that you need eight or more words if the attacker has password hashes that they can attack offline.) Salting adds 0-2 words worth of security depending on how many users can (no longer) be attacked with each hash invocation and a good (slow and optimization-resistant) algorithm adds 1-2 words depending on how slow you're willing to make login. Edit: I think TFA might be being facitious in the claim "This is a good password because it has lowercase, uppercase, numeric and non-alphanumeric values plus is 8 characters long.", although it doesn't communicate that very clearly.