PHP хеширование паролей

На данный момент у меня есть эта строка кода

<?php
    $pass = "12312312";
    echo md5(crypt($pass))
?>

Я знаю, что крипта может генерировать соль случайным образом, но я понятия не имею, как я могу сравнить ее с пользовательским вводом.

Какие поля мне нужны для моего входа в таблицу? а также, какие данные я добавлю в свою таблицу?

Спасибо!

1 ответ

Решение

Вы можете хранить пароль в таблице, как показано ниже

$pass = "12312312";

// store this in table with separate column
$salt = md5("any variable"); // may be email or username

// generate password
$password = sha1($salt.$pass);

// now store salt and password in table

И вы можете проверить пароль, как

$pass = "User input";

// get the user from database based on user id or username
// and test the password stored in db with

if($passwordFromTable == sha1($saltFromTable.$pass))
{
    // correct
}
Другие вопросы по тегам