/ Published in: PHP
URL: http://net.tutsplus.com/tutorials/php/understanding-hash-functions-and-keeping-passwords-safe/
Nice implementation of Blowfish for storing user passwords to prevent decryption when for example the user database is compromised. Origin: Burak Guzel@Nettuts
Expand |
Embed | Plain Text
// // PassHash.php (Utility class): // class PassHash { // blowfish // cost parameter // mainly for internal use } // this will be used to generate a hash self::$algo . self::$cost . '$' . self::unique_salt()); } // this will be used to compare a password against a hash return ($hash == $new_hash); } } /////////////////////////////////////////////////////////////////// // // Usage during registration (creating a new user record) : // /////////////////////////////////////////////////////////////////// // include the class require ("PassHash.php"); // read all form input from $_POST // ... // do your regular form validation stuff // ... // hash the password $pass_hash = PassHash::hash($_POST['password']); // store all user info in the DB, excluding $_POST['password'] // store $pass_hash instead // ... /////////////////////////////////////////////////////////////////// // // Usage during login (checking the user record) : // /////////////////////////////////////////////////////////////////// // include the class require ("PassHash.php"); // read all form input from $_POST // ... // fetch the user record based on $_POST['username'] or similar // ... // check the password the user tried to login with if (PassHash::check_password($user['pass_hash'], $_POST['password'])) { // grant access // ... } else { // deny access // ... }
Comments
Subscribe to comments
You need to login to post a comment.

Hi,
You missed a closing bracket here: if (PassHash::checkpassword($user['passhash'], $_POST['password']) {
Thanks for the code.