如何使用AES解密PHP MySQL中的加密数据



我的验证表中有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"

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

您的示例语句,为可读性而格式化,说

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

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

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

最新更新