Скрипт регистрации в php для хеширования паролей

#php #mysql

#php #mysql

Вопрос:

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

Где в моем коде я начинаю это делать, я не ищу ответа или кого-то, кто сделает это за меня, мне просто нужен совет.

 <?php

include 'connect.php';

// escape variables for security
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$first_name = mysqli_real_escape_string($con, $_POST['first_name']);
$last_name = mysqli_real_escape_string($con, $_POST['last_name']);
$email = mysqli_real_escape_string($con, $_POST['email']);

$sql="INSERT INTO users (username, password, first_name, last_name, email )
VALUES ('$username', '$password', '$first_name', '$last_name', '$email')";


if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
    header ('Location: /register.php');



?>
 

Комментарии:

1. Используйте password_hash , это определенно должно быть единственное, что вы должны использовать. Он позаботится о многом за вас. Кроме того, используйте подготовленные запросы вместо экранирования вручную.

2. @BenjaminGruenbaum, password_hash лучше, чем использовать sha1 ?

3. @LinkinTED ДА, тот факт, что вы задаете этот вопрос, указывает на то, что вы обязательно должны его использовать 🙂 SHA1 не предназначен для безопасности, он предназначен для проверки, вы никогда не должны использовать SHA1 для безопасности — только для проверки передачи данных (например — после того, как вы загрузили большой файл, и вы хотите убедиться, что данные загружены правильно).

4. И если у вас нет версии PHP> = 5.5.0, вы можете использовать phpass

5. @BenjaminGruenbaum Итак, исходя из моего сценария выше, буду ли я использовать password_hash там? Я немного смущен документацией php, которую вы видите

Ответ №1:

Вы можете использовать password_hash для хеширования своего пароля.

Он будет использовать лучший доступный алгоритм и будет обновлен в будущем.

Больше информации здесь.

Комментарии:

1. Привет, спасибо, что ответили на мой пост, я прочитал руководство, но я немного озадачен в своем коде выше относительно того, где я мог бы интегрировать password_hash или что-то подобное. Я однажды использовал MD5 в старом скрипте, но это было просто.

2. @user3725879 зайдите и спросите в комнате php здесь.