I'm looking for a simple (or as simple as possible) yet secure method for hashing and salting a users password when submitting it to the database and then retrieving from the database. Having spent the past 3 hours researching, there are literally hundreds of different methods that each person will say is the best method.
I'm looking for a relatively simple method that will also keep users accounts secure. Obviously the term secure can be interpreted differently, but i just want it, at the very least, be very difficult for a would-be hacker (or whatever you'd call these saddo's) to gain access to a users account.
I appreciate that i should have at least tried a few things, but they all seem so convoluted and overly secure for my purpose.
I tried using password_hash() but it appears i'm running an earlier PHP version than 5.5. I understand there are issues with the code below, but it's simply a starting point for a person project i'm working on in order to better learn PHP.
Current registration form
$username = $_POST['username']; $password = $_POST['password']; try { $result = $db->prepare("INSERT INTO user_info SET username = :user, pass = :pass "); $result->bindParam(':user', $username); $result->bindParam(':pass', $password); $result->execute(); } catch (Exception $e) { echo "Could not create username"; } if (isset($_POST['submit'])) { foreach ($_POST as $field) { if (empty($field)) { $fail = true; } else { $continue = false; } } if ($field == $fail) { echo "You must enter a username and/or password"; } else { echo "Your account has been successfully created."; } } The login logic
$username = $_POST['username']; $password = $_POST['password']; try { $result = $db->prepare("SELECT username, pass FROM user_info WHERE username = :user AND BINARY pass = :pass"); $result->bindParam(':user', $username); $result->bindParam(':pass', $password); $result->execute(); $rows = $result->fetch(PDO::FETCH_NUM); } catch (Exception $e) { echo "Could not retrieve data from database"; exit(); } if ($password = $rows) { session_start(); $_SESSION['username'] = $_POST['username']; $_SESSION['loggedin'] = true; include("inc/redirect.php"); } else { if (isset($_POST['login'])) { echo "Username or password incorrect (passwords are case sensitive)"; } }