我有一些數據,我已經存儲在我的數據庫的一個加密。這些是我想要在數據庫中存儲的個人詳細信息。加密部分(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