php - 从 MySQL 数据库中解密数据

标签 php html mysql salt

我有以下代码在 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);
?>

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

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

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

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

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

关于php - 从 MySQL 数据库中解密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37575004/

相关文章:

php - Amazon SES 版本字段

javascript - php/jQuery - 表单验证,获取动态添加的输入值

html - CSS div 不适应内容

mysql - 通过 Spring Boot 将 Image 插入 MySQL 数据库

sql - 如何在多连接表上添加条件

mysql - 如何使用 VB.Net 中已定义的列填充 datagridview

php - SQL注入(inject)——还有什么?

php - 使用像 "every other week on tuesday"这样的日期

php - 从网页打印旋转文本

css - 如何在不控制嵌入的情况下将 DIV float 到 FLASH 上