从 MySQL 数据库中解密数据

Decrypt data from MySQL database

我有以下代码可以在 HTMl 数据库中显示来自 MySQL 数据库的所有数据:

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

这段代码工作正常,数据在 table 中正确显示,我的问题是数据库中的大部分数据都是加密的(简单地)!

例如,这里是某人名字的存储方式5cGs+mhdNN/SnHdqEbMk6zlKRu8uW7pR1zRjQHV9DGQ=

有没有办法在 table 中显示数据之前对其进行解密?

我通常用以下方式解密日期:

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

您需要一个加密的列数组。

<?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 数组中。