gpt4 book ai didi

php - MYSQL AES_DECRYPT 错误

转载 作者:行者123 更新时间:2023-11-29 22:29:38 31 4
gpt4 key购买 nike

我有一些数据已加密存储在我的数据库之一上。这些是我希望在数据库上加密存储的个人详细信息。加密部分(AES_ENCRYPT(fname, $key) 工作正常 - 它以加密形式存储数据,正是我想要的方式。问题是当用户返回到他们填写个人详细信息的表单以进行调整时这些详细信息。我希望他们最初输入的数据出现在各自的字段中,以便他们能够修改它们。解密返回空值,甚至什么也不返回。这是我的代码:

$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'];

}

就解密而言,这不会返回任何结果。我知道查询的工作原理是,如果我回显所有字段,它会返回用户名。它还返回行数。就加密字段而言,没有任何返回。我在这里做错了什么?

注意: key 与我用来加密数据的 key 相同。

如果您需要更多信息,请告诉我。

感谢一百万!

最佳答案

我修复了它 - 这是输入的问题:在输入 php 收到来自表单的数据后,我使用 mysqli_real_escape_string 和 preg_replace 清理了数据,因此无论出于何种原因,数据库中都没有任何内容首先,或者它以某种方式添加了其他字符。相当奇怪,因为我将输入限制为仅数字和字母,但这是一个不同类型的问题:)无论如何,在将“cast”添加到选择查询后,它就像一个魅力!

cast(aes_decrypt(fname, '1234567') as char) as fname 等...(更改了 key )向我显示了所有数据:)

非常感谢大家的努力!

关于php - MYSQL AES_DECRYPT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920386/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com