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

<?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();

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

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

Если хеш - то он односторонний. Т.е. его уже не привести к первичному виду.

$_POST['username'] перед ипользованием стоит проверить, что индекс есть.
Ответ написан
romandkoz
@romandkoz
Для хэширования пароля используй функцию password_hash, а при авторизации сверяй пароль из инпута с хэшем в базе функцией password_verify
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
DANYCOM Краснодар
от 50 000 до 100 000 ₽
ЭР-Телеком Пермь
от 80 000 ₽
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
30 мар. 2020, в 12:30
400 руб./за проект
30 мар. 2020, в 12:20
5000 руб./за проект
30 мар. 2020, в 12:16
3000 руб./за проект