我只是好奇,如果有人可以让我在正确的方向,搜索MySQL与AES加密。
有几件事需要考虑。如果我在搜索之前获取关键字并对其进行加密,我正在将加密与加密进行比较,即使在MySQL中一个字母是大写的,而另一个字母不是大写的,它也不会使用LIKE %$ keyword %找到它
另一个因素是我的加密过程。$variable -> clean spacing -> strip_slashes (etc) ->转换为AES ->在导入到数据库之前转换为Base_64。
额外编码的原因是抽象字符进入MySQL的问题,这是一个使用它的完美导入。所以使用内置的MySQL AES对我来说不是最好的选择。
所以我猜做这件事的最好方法就是这样做。
sql关键字$variable结果解密并搜索字符串?但这似乎有点过头了.
也许有人能为我解释一下这件事,我将非常感激。
干杯!并提前感谢!
发布于 2010-10-28 07:14:56
如果您在插入数据之前对数据进行了加密,那么除了迭代每一行、解密它并搜索结果之外,根本没有办法搜索部分值。
发布于 2012-08-31 04:49:52
这是一个有点慢的响应,但是你可以通过这样做来获得更快的搜索结果。
假设我们想要加密这些句子:
我爱mysql
我的好车
您可以加密存储它们,假设***,或者,您可以存储加密值并包含原始文件的前3个字符: my ***,I l***,Min***
在这种情况下,您可以使用mysql搜索您要查找的内容的前3个字符,并对其余数据执行完全解密。
当然,这只适用于“以”某个字符串开头的搜索。这3个字符只是一个随机数,应根据敏感度、性能需求和数据集大小确定。
发布于 2014-01-22 21:56:29
下面是一个类似Andrew建议的例子,如果有帮助的话。
$sql_query = "SELECT *,AES_DECRYPT(text_in_blob,'$salt') AS decrypted_text FROM my_table WHERE CONVERT(AES_DECRYPT(text_in_blob,'$salt') USING latin1) LIKE '%keyword%‘“;
https://stackoverflow.com/questions/4038440
复制相似问题