我有一些数据,我已经存储在我的数据库的一个加密。这些是我想要在数据库中存储的个人详细信息。加密部分(AES_ENCRYPT(fname,$ key)工作正常 - 它以加密的形式存储数据,只是我想要的方式。问题是当用户返回表单时,他们填写了他们的个人详细信息以进行调整。这些细节我想他们最初输入的数据出现在各自的领域为他们能够修改他们的解密返回空值,甚至什么都没有这是我的代码:MYSQL AES_DECRYPT错误
$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
$sql = "SELECT username, AES_DECRYPT(AES_DECRYPT (fname, '$key'),'$key'),
AES_DECRYPT(AES_DECRYPT (lname, '$key'),'$key'), AES_DECRYPT(AES_DECRYPT
(address1, '$key'),'$key'), AES_DECRYPT(AES_DECRYPT (address2, '$key'),'$key'),
AES_DECRYPT(AES_DECRYPT (zip, '$key'),'$key'), AES_DECRYPT(AES_DECRYPT (city,
'$key'),'$key'), AES_DECRYPT(AES_DECRYPT (country, '$key'),'$key'),
AES_DECRYPT(AES_DECRYPT (phone, '$key'),'$key') FROM persdetails WHERE username
= '$_username'";
$query = mysqli_query($db_conxpd, $sql);
$numrows = mysqli_num_rows($query);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
$_u = $row['username'];
$_fname = $row['fname'];
$_lname = $row['lname'];
$_addr1 = $row['address1'];
$_addr2 = $row['address2'];
$_zippo = $row['zip'];
$_citys = $row['city'];
$_cntry = $row['country'];
$_phone = $row['phone'];
}
这确实在解密方面不会返回任何结果,我知道查询的工作原理是,如果我回显所有字段,它会返回用户名,并返回行数。我在这做错了什么?
注意:密钥与我用来加密数据的密钥相同。
让我知道你是否需要更多信息。
非常感谢!
将此查询复制并粘贴到您的phpmyadmin sql中,并运行检查其是否有效查询 – Saty
这样做并返回正确。 - 有效即 –
尝试AES_DECRYPT(AES_DECRYPT(fname,'$ key'),'$ key')fname创建列的别名并尝试 – Saty