PHP hashing function not working properly

Posted by Jordan Foreman on Stack Overflow See other posts from Stack Overflow or by Jordan Foreman
Published on 2012-09-12T03:28:55Z Indexed on 2012/09/12 3:38 UTC
Read the original article Hit count: 195

Filed under:
|
|
|

So I read a quick PHP login system securing article, and was trying to sort of duplicate their hashing method, and during testing, am not getting the proper output.

Here is my code:

function decryptPassword($pw, $salt){
    $hash = hash('sha256', $salt . hash('sha256', $pw));
    return $hash;
}

function encryptPassword($pw){
    $hash = hash('sha256', $pw);
    $salt = substr(md5(uniqid(rand(), true)), 0, 3);
    $hash = hash('sha265', $salt . $hash);
    return array(
        'salt' => $salt,
        'hash' => $hash
    );
}

And here is my testing code:

$pw = $_GET['pw'];

$enc = encryptPassword($pw);
$hash = $enc['hash'];
$salt = $enc['salt'];

echo 'Pass: ' . $pw . '<br />';
echo 'Hash: ' . $hash . '<br />';
echo 'Salt: ' . $salt . '<br />';
echo 'Decrypt: ' . decryptPassword($hash, $salt);

Now, the output of this should be pretty obvious, but unfortunately, the $hash variable always comes out empty! I'm trying to figure out what the problem could be, and my only guess would be the second $hash assignment line in the encryptPassword(..) function. After a little testing, I've determined that the first assignment works smoothly, but the second does not.

Any suggestions? Thanks SO!

© Stack Overflow or respective owner

Related posts about php

Related posts about security