Crypt соль шифрование логин

0

Я уверен, что это может быть просто для кого-то, но хорошо.

Мне тяжело, я хочу сделать логин, используя информацию о клиенте ispconfig, и он работает хорошо, за исключением того, что пароль должен соответствовать паролю ispconfig, который использует шифрование crypt/salt, насколько я знаю, как бы я совпадал с этим паролем пользователь вводит?

Пока у меня есть это, но я, похоже, не работаю:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = stripslashes($selectUserPass['password']);
$salt = '$1$'.substr($saved_password, 3, 8).'$';
$clientPasswordSafe = crypt(stripslashes($clientPassword), $salt);

Благодарю!

Теги:
encryption

1 ответ

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

Если пароль был действительно хэширован с помощью функции crypt(), вы можете проверить его следующим образом:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = $selectUserPass['password'];
$isPasswordCorrect = crypt($clientPassword, $Passcollected) === $Passcollected;

Или еще проще с новой функцией пароля:

$clientPassword = $_POST['password'];
$selectUserPass = mysqli_query($con, "SELECT * FROM client");
$Passcollected = $selectUserPass['password'];
$isPasswordCorrect = password_verify($clientPassword, $Passcollected);

Обратите внимание, что я не использовал функцию stripslashes(), экранирование не требуется перед хэшированием. Соль является частью сохраненного хэша и автоматически извлекается функцией проверки.

  • 0
    Спасибо, сэр! Работал как талисман хорошего дня тебе! :-)
  • 0
    @ Анокси - Рад, что это сработало. Обратите внимание, что SELECT * FROM client вернет всех клиентов, а не одного.
Показать ещё 1 комментарий

Ещё вопросы

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