Передача ввода пароля в соленый хеш-токен перед вставкой в БД mysql

0

Я отправляю данные из формы в эту логику для регистрации пользователей. Вопрос, который у меня есть, заключается в том, как взять информацию, отправленную в переменную $ userpw в этой логике, и передать ее в токен, а затем вставить содержимое токена в db в качестве пароля пользователя. Я очень новичок в PHP, прошу прощаться со мной. я просто меняю инструкцию insert, чтобы включить переменную токена вместо userpw?

//---sanitize function on a different file.
require 'sanitize.php';

//-------------variables including the hashed token--------------
  $userid   = $username= $userpw = $userfname = $userlname = '';
  $salt     = "qm&h*";
  $pepper   = "pg!@";
  $token    = hash('ripemd128', "$salt$userpw$pepper");


//--------existing insert logic-------------
if (isset($_POST['user_name'])    &&
    isset($_POST['user_pw']) &&
    isset($_POST['user_fname']) &&
    isset($_POST['user_lname']))
  {

    $username      = sanitizeString($_POST['user_name']);
    $userpw        = sanitizeString($_POST['user_pw']);
    $userfname     = sanitizeString($_POST['user_fname']);
    $userlname     = sanitizeString($_POST['user_lname']);
    $query    = "INSERT INTO users (user_name, user_pw, user_fname, user_lname) VALUES" .
      "('$username', '$userpw', '$userfname', '$userlname')";
         $result   = $conn->query($query);

    if (!$result) echo "INSERT failed: $query<br>" .
      $conn->error . "<br><br>";
  • 2
    Используйте password_hash() при сохранении пароля и password_verify() при проверке пароля.
  • 2
    ^ ... и не объединяйте данные в запрос, вместо этого используйте подготовленные операторы
Показать ещё 10 комментариев
Теги:
passwords

1 ответ

0
Лучший ответ

По комментариям это правильное изменение:

if (isset($_POST['user_name'])    &&
    isset($_POST['user_pw']) &&
    isset($_POST['user_fname']) &&
    isset($_POST['user_lname']))
  {

    $username      = sanitizeString($_POST['user_name']);
    $userpw        = sanitizeString($_POST['user_pw']);
    $userfname     = sanitizeString($_POST['user_fname']);
    $userlname     = sanitizeString($_POST['user_lname']);
    $query    = "INSERT INTO users (user_name, user_pw, user_fname, user_lname) VALUES" .
      "('$username', '$token', '$userfname', '$userlname')";
         $result   = $conn->query($query);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню