расшифровать пароль с помощью соли - PullRequest
0 голосов
/ 02 июля 2019

Код Здесь шифруется пароль, но как я расшифровываю его или сравниваю его с логином в laravel

Код, где используется

   getsql(md5($_POST['regpassword'] . SALT), "default"),

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Когда вы проверяете пароль, вы можете сделать:

$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT * FROM users WHERE username = '{$_POST['username']}' AND password = '$hashed'";

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

Другой способ - извлечь хешированный пароль из базы данных, а затем сравнить его с предоставленным хешированным + соленым паролем:

$hashed = md5($_POST['password'] . SALT);
$sql = "SELECT password FROM users WHERE username = '{$_POST['username']}'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
if ($row && $hashed == $row['password']) {
    // user is validated
}

Если вы исправите свой метод хранения паролей, чтобы использовать более разумный метод, чем статический SALT, этот второй метод можно легко обновить. Вместо $hashed == $row['password'] вы бы использовали password_verify($_POST['password'], $row['password']).

0 голосов
/ 02 июля 2019

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

...