2014-01-18 74 views
0

我在我的驗證表中有key_id,key_verification,confirm_keykey_status如何在php中使用aes解密加密數據?

我設法加密我key_verification到我的數據庫使用AES:

$sql2 = "INSERT INTO verification (key_verification, key_status) VALUES ((AES_ENCRYPT('bhadana', '" . $key_verification . "')), '" . $key_status . "')"; 

但是試圖解密它回來時,我有問題。這是我正在使用的代碼:

$sql4="SELECT * FROM verification WHERE key_verification = AES_ENCRYPT ('bhadana', '" . $key_verification . "')"; 
$query4 = mysql_query($sql4) or die ("Error: " . mysql_error()); 
$num_rows4 = mysql_num_rows($query4); 
$check4 = mysql_fetch_array($query4); 

$sql3= "SELECT AES_DECRYPT (key_verification, '" . $key_verification . "') as encrypted from verification"; 
$query3 = mysql_query($sql3) or die ("Error: " . mysql_error()); 
$num_rows3 = mysql_num_rows($query3); 
$check3 = mysql_fetch_array($query3); 

我知道SQL是錯誤的,但我不知道如何加入SQL。如果我需要在代碼中添加任何內容?

我是加密新手,希望有人能幫助我解決這個問題。

編輯:的錯誤是「未定義key_verification」

+0

嘗試從驗證中加密的SELECT CAST(AES_DECRYPT(key_verification,'。。$ key_verification。'')AS 012(100)) – Mihai

+0

@Mihai它不工作。哦,錯誤是未定義key_verification在這兩個sql – doksoos

+0

你確定你得到一個MySQL錯誤?你可能會得到一個PHP錯誤? –

回答

0

你的PHP代碼試圖使用變量$ key_verification,但它似乎是不確定的。

你舉的例子聲明,格式化爲可讀性,說

$sql3= "SELECT AES_DECRYPT (key_verification, '" . 
     $key_verification . 
     "') as encrypted from verification"; 

對於這個工作,你需要已經定義的變量$ key_verification,否則你會從PHP得到undefined消息。

專業提示:對舊的不安全的mysql_ API使用加密就像在您的窗戶上放置昂貴的安全鎖,同時讓您的前門敞開。

+0

我解決了錯誤。但是現在爲什麼我的解密數據是????????????????回到原始數據5437? – doksoos