Расшифровать данные из базы данных MySQL

У меня есть код ниже, чтобы показать все данные из базы данных MySQL в базе данных HTMl:

<?php
$result = mysqli_query($con,"SELECT * FROM Persons");
echo "<table border='1'>";
$i = 0;
while($row = $result->fetch_assoc())
{
    if ($i == 0) {
      $i++;
      echo "<tr>";
      foreach ($row as $key => $value) {
        echo "<th>" . $key . "</th>";
      }
      echo "</tr>";
    }
    echo "<tr>";
    foreach ($row as $value) {
      echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

Этот код работает нормально, и данные отображаются в таблице правильно, моя проблема в том, что большая часть данных в БД зашифрована (просто)!

Например, вот как хранится чье-то имя 5cGs+mhdNN/SnHdqEbMk6zlKRu8uW7pR1zRjQHV9DGQ=

Есть ли способ расшифровать данные перед отображением в таблице?

Я обычно расшифровываю дату следующим образом:

$name_firstD = simple_decrypt($name_first , "secured");

1 ответ

Решение

Вам нужно иметь массив столбцов, которые зашифрованы.

<?php
$result = mysqli_query($con,"SELECT * FROM Persons");

$encrypted_columns = array('password','code', 'first_name');

echo "<table border='1'>";
$i = 0;
while($row = $result->fetch_assoc())
{
    if ($i == 0) {
      $i++;
      echo "<tr>";
      foreach ($row as $key => $value) {
        echo "<th>" . $key . "</th>";
      }
      echo "</tr>";
    }
    echo "<tr>";
    foreach ($row as $key => $value) {
      echo "<td>" . (in_array($key,$encrypted_columns))? simple_decrypt($value , "secured") : $value . "</td>";
    }
    echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

поместите имя вашего зашифрованного столбца в массив $encrypted_columns.

Другие вопросы по тегам