Как расшифровать пароль из базы данных в php?

0

Я создаю страницу информации редактирования, но когда я вызываю данные для пароля, она зашифровывается. Есть ли способ, чтобы я мог расшифровать его?

это мои коды,

<?php
require 'dbfunction.php';

$con = getDbConnect();


   if (mysqli_connect_errno($con)) {
      "Failed to connect to MySQL: " . mysqli_connect_error();
   } else {
      $result = mysqli_query($con, "SELECT * FROM admininfo where name = xyz");

   while ($admininfo = mysqli_fetch_array($result)) {
                           
                            ?>

  <div class="container">
    <div class="row">

      <center>
        <h2>Edit Info Administrator</h2>
      </center>
      <form>

        <div class="form-group">
          <label class="col-sm-2 control-label">Name</label>
          <div class="col-md-10">
            <input type="text" class="form-control" value="<?php echo $admininfo['name']; ?>" name="name">
          </div>
        </div>

        <div class="form-group">
          <label class="col-sm-2 control-label">Password</label>
          <div class="col-md-10">
            <input type="password" class="form-control" placeholder="<?php echo $admininfo['password']; ?>" name="password">
          </div>
        </div>

        <div class="form-group">
          <label class="col-sm-2 control-label">Comfirm Password</label>
          <div class="col-md-10">
            <input type="password" class="form-control" placeholder="Confirm Password" name="confirmpassword">
          </div>
        </div>

        <div class="form-group">
          <div class="col-sm-10 col-sm-offset-2">
            <input type="submit" value="edit account" class="btn btn-primary">
          </div>
        </div>

      </form>
    </div>
  </div>



<?php } mysqli_close($con); } ?>

В настоящее время появляется имя, только пароль зашифрован.

  • 2
    Как они «зашифрованы»? Если они хешированы, вы не можете их «расшифровать».
  • 1
    Вы не хешируете данный пароль и сравниваете его.
Показать ещё 1 комментарий
Теги:
database
encryption

2 ответа

5

Невозможно сказать, из кода, который вы указали, как пароль зашифрован.

Если это будет сделано правильно, то пароль будет сохранен с использованием алгоритма слияния и хэширования, а не с каким-либо обратимым шифрованием. В этом случае ответ будет "нет".

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

Возможно, ваш администратор также не должен устанавливать новый пароль напрямую, он должен иметь доступ к функции, которая отправляет на адрес пользователя один только токен, который они могут использовать для установки нового пароля.

2

Это плохая идея. В настоящее время вы указываете $admininfo['password'] в качестве заполнителя. Это означает, что его символы будут на самом деле видны на экране, даже если ваш ввод имеет тип пароля. Любой, кто смотрит через плечо, сможет это увидеть. Не делай этого.

Пароли должны храниться в базе данных, только хешированные и соленые. Есть способ проверить, является ли определенный открытый текст исходным паролем, но нет возможности расшифровать хеш (кроме грубой силы). Это делается по очевидным соображениям безопасности.

Посмотрите пароль_hash() и password_verify().

Ещё вопросы

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