Note: This uses PBKDF2-SHA256 as a browser-compatible alternative to bcrypt. Both are password hashing functions designed to be computationally expensive.