预订表格的加密数据检索

时间:2012-05-11 01:37:39

标签: php database aes encryption

您好我有一个预订系统,它从AES加密数据库中提取数据。在数据库中,邮政编码和目的地是加密的,用于有一个带有列表输入的旧脚本,因此用户可以在列表中选择目的地,因为目的地列表越来越大,我想做一个用户输入的表单几个字母,目的地使用ajax自动填充。我的问题是,它的拉动,数据为加密。

第一个预订脚本有这行解密

$areafro = mysql_query("select AREA_NO, AES_DECRYPT(POSTCODE, 'qsi') as POSTCODE, AES_DECRYPT(AREA_NM, 'qsi') as AREA_NM from area_mst where AES_DECRYPT(POSTCODE, 'qsi') LIKE '$char%' group by POSTCODE");

这是新的预订脚本代码

if(isset($_GET['areas']) && isset($_GET['letters'])){
$letters = $_GET['letters'];
$letters = preg_replace("/[^a-z0-9 ]/si","",$letters);
$res = mysql_query("select POSTCODE,AREA_NM from area_mst where (POSTCODE like '".$letters."1' or AREA_NM like '".$letters."1') order by AREATYPE") or die(mysql_error();

while($inf = mysql_fetch_array($res)){
    if($inf["POSTCODE"]!='')
    {
    echo $inf["POSTCODE"]."-".$inf["AREA_NM"]."|";
    }
    else
    {
    echo $inf["AREA_NM"]."|";
    }
}       

有人可以帮我解决如何解密数据吗?

1 个答案:

答案 0 :(得分:0)

您在后一代码中的查询不会解密。请注意,在旧代码中,您有

$areafro = mysql_query("select AREA_NO, AES_DECRYPT(POSTCODE, 'qsi') as POSTCODE,
 AES_DECRYPT(AREA_NM, 'qsi') as AREA_NM from area_mst 
where AES_DECRYPT(POSTCODE, 'qsi') LIKE '$char%' group by POSTCODE");

但是在新代码中,您只是在不解密的情况下提取数据。

$res = mysql_query("select POSTCODE,AREA_NM from area_mst 
where (POSTCODE like '".$letters."1' or AREA_NM like '".$letters."1') 
order by AREATYPE")

更改新代码,使查询与旧代码中的查询完全相同,