Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 与AES_解密不起作用的查询类似_Mysql_Sql_Aes - Fatal编程技术网

Mysql 与AES_解密不起作用的查询类似

Mysql 与AES_解密不起作用的查询类似,mysql,sql,aes,Mysql,Sql,Aes,我有一个表,其中包含几个加密的blob字段。数据用AES\u ENCRYPT加密。我现在正试图从这些字段生成ajax建议 以下查询不起作用 SELECT id , AES_DECRYPT(first_field,'secret_salt') , AES_DECRYPT(second_field,'secret_salt') FROM table WHERE ( AES_DECRYPT(first_field,'secret

我有一个表,其中包含几个加密的
blob
字段。数据用
AES\u ENCRYPT
加密。我现在正试图从这些字段生成ajax建议

以下查询不起作用

    SELECT id
           , AES_DECRYPT(first_field,'secret_salt')
           , AES_DECRYPT(second_field,'secret_salt')
    FROM   table
    WHERE  ( AES_DECRYPT(first_field,'secret_salt')  "%user search value%" 
       OR    AES_DECRYPT(second_field,'secret_salt') LIKE "%user search value%"
           ) 
      AND  status = 1
在过去的三天里,我一直在寻找和尝试。下面的查询确实有效,但不符合我的需要

    SELECT id
           , AES_DECRYPT(first_field,'secret_salt')
           , AES_DECRYPT(second_field,'secret_salt') 
    FROM   table
    WHERE  status = 1
我找到了这个查询,但它也不起作用

    SELECT  id, AES_DECRYPT(first_field,'secret_salt'), AES_DECRYPT(second_field,'secret_salt')
    FROM    table
    WHERE   first_field LIKE "%AES_ENCRYPT('user search value','secret_salt')%"
试用

WHERE CAST(AES_DECRYPT(first_field, 'secret_salt') AS CHAR) LIKE '%foo%'

为了调试,我建议使用一些常量进行硬编码。拉出一个加密字段并编写一个查询,如
选择AES_DECRYPT('kjhsjdkha','secret')
;检查它是否返回您期望的结果。我刚刚删除了旧数据并插入了新数据,我开始工作正常,它处于开发阶段,所以我只有一些记录,所以没有问题AES_加密版本无法工作;每次对相同的数据进行加密时,都会得到不同的结果。AES_解密版本至少有可能工作。然而,处理过程极其昂贵。您应该尽可能避免在加密列中搜索。“不起作用”不是有效的问题描述/分析。这救了我一命。我不知道解密后你可能不得不转换成char。呸。