3 ms·
Going off of memory, happy to be corrected. So something like pbkdf2 is intended to be "CPU hard" ie: it bottlenecks you on CPU. Then people started using GPUs
by staticassertion 6y ago
Going off of memory, happy to be corrected.
So something like pbkdf2 is intended to be "CPU hard" ie: it bottlenecks you on CPU. Then people started using GPUs for pbkdf2.
So we got bcrypt, which is CPU hard and uses enough memory that a GPU stops being particularly practical.
And then people build ASICs to bruteforce bcrypt faster. So we got scrypt and argon2, which are memory hard.
But the thing is that even PBKDF2 is pretty good. You can always just bump up the iteration count for PBKDF2 to increase security. I use a combination of PBKDF2 and bcrypt myself (pbkdf2 on the frontend, bcrypt on the backend).