PHP ms5 hashing passwords and pdo

  • Hello Guest! Welcome to ConsoleCrunch, to help support our site check out the premium upgrades HERE! to get exclusive access to our hidden content.
  • Unable to load portions of the website...
    If you use an ad blocker addon, you should disable it because it interferes with several elements of the site and blocks more than just adverts.
  • Read Rules Before Posting Post Virus Scans with every program.

Psycho_Coder

Active Poster
Retired Staff
Active Member
Apr 12, 2014
642
481
133
UK
I was doing some PDO and thought that because the passwords are not hashed in my mysql database I might aswell manually hash them.

Here ye go.
Code:
<?php 
try {
$handler = new PDO('mysql:host=localhost;dbname=scl', 'root', '');
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    echo $e->getMessage();
   
}
 $query = $handler->query('SELECT * FROM login');
 while($r = $query->fetch()) {
    echo $r['username'], '<br>';
    echo md5($r['password']), '<br>';
 }

I will explain this code bit by bit.

Code:
try {
$handler = new PDO('mysql:host=localhost;dbname=scl', 'root', '');
$handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}

This is basically trying to connect to your database obviously, that part is self explanatory, but for the second line It is checking if any errors are made, If there are any errors are made, it will produce a specific error message on your curren php page you're working on, You might ask yourself but how when there is no echo statement? Go down to the catch....


Code:
catch(PDOException $e) {
    echo $e->getMessage();
   
}

PDO exception is assigned to the $e meaning when $e is echoed out with getmessage() it produces the error that you have when trying to make the connection..


For example, I changed the letter of my databse name. It will give me such a error like this.

Code:
SQLSTATE[HY000] [1049] Unknown database 'scll'

Giving us a specific error on what is wrong. Moving along....

Code:
$query = $handler->query('SELECT * FROM login');
 while($r = $query->fetch()) {
    echo $r['username'], '<br>';
    echo md5($r['password']), '<br>';

since we are still working with PDO we still need to use the $handler as that is what keeps the connection going. so, In our database we are using a query to get information. while $r stands for row, our tables have different rows right? so $r = to the query we executed and is fetching the information that is in the table. We use $r to echo the row, the table is called username so we are echoing all the rows within that table, The same goes for the Passwords table, we are echoing all the rows which gives us the password, but we can see other users passwords? that is why we assigned the md5 to it so it automatically hashes the passwords for us on the echo.
 
General chit-chat
Help Users
    Chat Bot: NanoJhol is our newest member. Welcome!