Как «конвертировать» зашифрованный пароль с базы данных в нормальный текст?

<?php
	session_start();
	$username = filter_var(trim($_POST['username']), FILTER_SANITIZE_STRING);
	$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING);


	$mysql = new mysqli('localhost', 'root', '', 'user');
	$result = $mysql->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
	$user = $result->fetch_assoc();
	
	
	if(count($user) == 0){
			echo "no";
	}else{
		echo "yes";	
	}
	session_destroy();

?>
  • Вопрос задан
  • 1321 просмотр
Решения вопроса 4
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Пароли в базе обычно не шифруются, а хешируются.
Хеширование необратимо.
Ответ написан
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Никак. Хэш от пароля должен быть односторонним. Берем хэш от присланной строки и сверяем результат с тем что в бд
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Так не делается. Выбирается пользователь с нужным никнеймом, затем переданный пароль хешируется методом используемым при регистрации(если используется простое хэширование) и сравниваются хеши, или проверяется через password_verify, если использовалось более современное решение через password_hash().
Ответ написан
Комментировать
romandkoz
@romandkoz
Для хэширования пароля используй функцию password_hash, а при авторизации сверяй пароль из инпута с хэшем в базе функцией password_verify
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы