如何使用加密数据执行LIKE搜索?

时间:2016-07-04 11:56:20

标签: mysql

我的列lib_question中的数据使用AES_ENCRYPT加密。现在我想从表中搜索记录,其中该列类似于用户键入的特定条目。我尝试了这个,但它不起作用:

select id_question 
from question 
where lib_question like CONCAT('%',AES_ENCRYPT('contribuer', HEX('AVtr34ENMG')),'%');

我记得通过应用程序在对应于lib_question列的字段中输入 contribuer 这个词。

那么如何制作LIKE语句?

1 个答案:

答案 0 :(得分:3)

AES_ENCRYPT将在输入字符串(https://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_aes-encrypt)周围添加填充,这意味着您的比较将永远不会与加密字符串匹配。

您是否尝试过比较解密后的值?那应该更可靠。

select id_question 
from question 
where AES_DECRYPT(lib_question, HEX('AVtr34ENMG')) like '%contribuer%';