使用 PHP 在 MySQL table 中搜索 Base64 字符串
Search Base64 string in MySQL table using PHP
我昨天问了,但是我没有得到答案而且这个问题被标记为重复,这不是。
我将 "key" 列名称更改为 "lic_key" 并将 "keys" table 名称更改为 "license_keys" 因为我知道它们由 [=39= 保留].
这是我的 PHP 代码:
<?php
require 'config.inc.php';
/* Connect to database and grab the keys */
@mysql_connect($g_mysql_host,$g_mysql_usr,$g_mysql_pass)
or die("Couldn't connect to database server");
@mysql_selectdb($g_mysql_db)
or die("Couldn't select database");
$key = mysql_real_escape_string($_GET["key"]);
$query = "SELECT * FROM `license_keys` WHERE `lic_key` = '$key'";
$result = mysql_query($query);
if ($result == "") exit("INVALID KEY");
else {
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
echo $row['id'];
}
}
?>
这仅在键不包含“+”字符时有效,并且它会为搜索到的 "license_key" 输出特定的 "id" 。
如果密钥包含“+”或未找到,页面将保持空白(这是我遇到的另一个问题,因为脚本应该输出 "INVALID KEY")。
密钥字符串使用 Base64 中的 AES128 加密。其他键有“+”字符,其他键没有。
很快,
kQcYqzQlsr4/MXJ1ySw7jQ== -- works.
CKVcua+aWlnK5qfKwcm6wA== -- does not work.
此脚本仅供个人使用,所以我不害怕 SQL 注入。
谢谢。
感谢@Barmar 澄清了 URL 中“+”字符的问题。
如果密钥不正确,为了解决空白页的问题,我编辑了
if ($result == "") exit("INVALID KEY");
和
if (mysql_num_rows($result)==0) exit("INVALID KEY");
现在可以使用了。
我昨天问了
我将 "key" 列名称更改为 "lic_key" 并将 "keys" table 名称更改为 "license_keys" 因为我知道它们由 [=39= 保留].
这是我的 PHP 代码:
<?php
require 'config.inc.php';
/* Connect to database and grab the keys */
@mysql_connect($g_mysql_host,$g_mysql_usr,$g_mysql_pass)
or die("Couldn't connect to database server");
@mysql_selectdb($g_mysql_db)
or die("Couldn't select database");
$key = mysql_real_escape_string($_GET["key"]);
$query = "SELECT * FROM `license_keys` WHERE `lic_key` = '$key'";
$result = mysql_query($query);
if ($result == "") exit("INVALID KEY");
else {
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
echo $row['id'];
}
}
?>
这仅在键不包含“+”字符时有效,并且它会为搜索到的 "license_key" 输出特定的 "id" 。 如果密钥包含“+”或未找到,页面将保持空白(这是我遇到的另一个问题,因为脚本应该输出 "INVALID KEY")。
密钥字符串使用 Base64 中的 AES128 加密。其他键有“+”字符,其他键没有。
很快,
kQcYqzQlsr4/MXJ1ySw7jQ== -- works.
CKVcua+aWlnK5qfKwcm6wA== -- does not work.
此脚本仅供个人使用,所以我不害怕 SQL 注入。
谢谢。
感谢@Barmar 澄清了 URL 中“+”字符的问题。 如果密钥不正确,为了解决空白页的问题,我编辑了
if ($result == "") exit("INVALID KEY");
和
if (mysql_num_rows($result)==0) exit("INVALID KEY");
现在可以使用了。