2013-08-20 1 views
0

Я зашифровал свой пароль с помощью функции crypt(). , когда пользователь хочет войти в систему, как я могу проверить пароль, хранящийся в базе данных, с этим?Как я могу проверить зашифрованный пароль на странице входа?

для Ex:

$pass = "fgyi34".$pass."@1187Gh"; 

$hashed_password = crypt($pass); 
+0

Нечто подобное [это] (http://stackoverflow.com/questions/8199244/using-crypt-and-verifying-not-sure-how-it-works)? – machineaddict

+3

Вам нужно зашифровать пароль, который пользователь заполняет в форме входа перед запросом SQL-запроса – Garry

+0

, но каждый раз, когда он дает другой результат – Saeid

ответ

0

Для нового пользователя.
crypt пароль и храните его в базе данных.

Для существующего пользователя
crypt пароля и сохранить его в переменном, когда пользователь нажимает кнопку отправки, сравнить зашифрованный пароль с ранее зашифрованным паролем на вашу базе данных. Если пароль не совпадает, отобразите сообщение пользователю, что пароль неверен.

0

Хранить $ hashed_password в базе данных при регистрации.

При входе в системе проверить зашифрованный пароль с сохраненными один в MySQL Query

0

Crypt пароль не может быть изменен так, выполните следующие действия для шифрования пароля:

1) генерирует случайное число и шифрование, что , 2) После шифрования сохраните это в поле столбца базы данных. 3) во время входа в систему перекрестите введенный пароль и снова зашифруйте его. 4) Проверьте этот новый пароль с хешированным паролем.

0

Прочтите Manual, пожалуйста.

Необязательная сольная цепочка для хэширования. Если не предусмотрено, то поведение определяется реализацией алгоритма и может привести к неожиданным результатам

Пример # 1

<?php 
    $hashed_password = crypt('mypassword'); // let the salt be automatically generated 

    /* 
    You should pass the entire results of crypt() as the salt for comparing a 
    password, to avoid problems when different hashing algorithms are used. (As 
    it says above, standard DES-based password hashing uses a 2-character salt, 
    but MD5-based hashing uses 12.) 
    */ 
    if (crypt($user_input, $hashed_password) == $hashed_password) { 
    echo "Password verified!"; 
    } 
?> 

Поэтому, когда пользователи пытаются войти, получить зашифрованную password от базу данных с их username и сравнить и user input и hashed password с crypt.

Пример # 2

<?php 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 

    $passhash = "SELECT `password` FROM `table` WHERE `username` = '{$username}'"; 
    // execute the query and get the hashed password 

    if ($passhash) { 
    if (crypt($password, $passhash) == $passhash) { 
     echo "Password verified!"; 
    } 
    } 
?>