2013-05-10 3 views
1

Вот мой код для хэширования пароля со случайной солью. Но, к сожалению, он не хочет работать, он дает неверный пароль.Как хэш-пароль со случайной солью?

Часть первая, в которой пользователь кодирует свои учетные данные.

<?php 
    echo "enter the username \n"; 
    $username = trim(fgets(STDIN)); 
    echo "enter the password\n"; 
    $password = trim(fgets(STDIN)); 
    //connecting to database 
    $con=mysqli_connect("localhost","sqldata","sqldata","accounts"); 
    // Check connection 
    if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $salt = time(); 
    $hashedPassword = sha1($password . $salt); 
    echo "$hashedPassword"; 
    mysqli_query($con,"INSERT INTO login (username, salt, password) 
    VALUES ('$username', '$hashedPassword','$salt')"); 
    mysqli_close($con) 
?> 

Вторая часть скрипта, в котором пользователь вводит свои учетные данные.

<?php 
    echo "enter the username \n"; 
    $username = trim(fgets(STDIN)); 
    echo "enter the password\n"; 
    $password = trim(fgets(STDIN)); 
    //connecting to database 
    $db = mysql_connect("localhost","sqldata","sqldata") or die(mysql_error()); 
    //selecting our database 
    $db_select = mysql_select_db("accounts", $db) or die(mysql_error()); 
    $result= mysql_query("select * from login where username = '$username' "); 
    if (!$result) exit("$userName wasn't found in the database!"); 
    $row = mysql_fetch_array($result); 
    $storedPassword = $row['password']; 
    $salt = $row['salt']; 
    $hashedPassword = sha1($password . $salt); 
    if ($storedPassword != $hashedPassword) { 
    exit('incorrect password!'); 
    } else { 
    echo "ok"; 
    } 
?> 

ответ

2

Вы хранение соли в password колонки, и наоборот.

mysqli_query($con,"INSERT INTO login (username, salt, password) 
    VALUES ('$username', '$hashedPassword','$salt')"); 

Изменения к этому:

mysqli_query($con,"INSERT INTO login (username, password, salt) 
    VALUES ('$username', '$hashedPassword','$salt')"); 
+0

спасибо, что это работа каждый хорошо !! –

Смежные вопросы