如何使用aes解密php mysql中的加密数据?

时间:2014-01-18 16:51:31

标签: php mysql sql encryption aes

我的验证表中有key_idkey_verificationconfirm_keykey_status

我设法使用AES将key_verification加密到我的数据库中:

    $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”

1 个答案:

答案 0 :(得分:0)

您的PHP代码正在尝试使用变量$ key_verification,但它似乎未定义。

为了便于阅读而格式化的示例语句

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

为此,您需要已定义的变量$ key_verification,否则您将从PHP获取undefined消息。

专业提示:对旧的不安全的mysql_ API使用加密就像在窗户上放置昂贵的安全锁,同时让前门敞开。