Расшифровать данные из базы данных 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.