我有以下代码在 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/