我的验证表中有key_id
、key_verification
、confirm_key
和key_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 进行加密就像在窗户上放一把昂贵的安全锁,同时让前门敞开。