【问题标题】:Decrypt data from MySQL database从 MySQL 数据库中解密数据
【发布时间】:2016-10-01 04:42:08
【问题描述】:

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

【问题讨论】:

  • Salts ecnrpytion 只是一种方式 你不能解密
  • 可能不是盐那么抱歉
  • 未加密。看起来像base_64
  • 只是一点点:simple_decrypt() 不是标准的 PHP,我从未听说过它。我想许多其他人也没有。在您的问题中快速说明它会有所帮助
  • @RyanVincent 这似乎有效。除了默认的salt 会产生一个愚蠢的错误,因为它的一个字节太长了

标签: php html mysql salt


【解决方案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 数组中。

【讨论】:

  • @user3092953。它应该工作。除非您提供的信息有误。请查看代码并使用适当的值对其进行自定义
猜你喜欢
  • 2013-04-10
  • 2017-04-01
  • 1970-01-01
  • 2017-12-14
  • 2020-05-01
  • 2016-08-04
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多