2016-06-21 85 views
2

我知道这是一个非常奇怪的问题。我的数据库中有一些列使用RSA进行数据加密。但是前端使用实例搜索。所以,我需要将加密数据与部分明文进行匹配。如何用sql关键字'like'查找加密数据

例如:原始文本是“stackoverflow”,它在数据库中被加密。当前端输入获得明文“”时,应该匹配加密的“栈溢出”

我知道有一个解决方案:加载所有数据,解密和匹配。以及巨大的内存使用量。那么,如何在数据库中处理这个问题?如果我想使用关键字“like”,我应该怎么做?

+1

看起来像产品特定的问题。标记使用的dbms。 – jarlh

+0

我会说它可以是一个通用的问题,我有一个类似的专利申请:) https://worldwide.espacenet.com/publicationDetails/biblio?II=3&ND=3&adjacent=true&locale=en_EP&FT=D&date=20160224&CC= EP&NR = 2988291A1&KC = A1 –

+0

那么,我会说这取决于实施。一些dbms产品具有内置加密功能,而另一些则没有。需要更多信息才能给出好的建议。 – jarlh

回答

0

如果有可以搜索关键字的数量有限,而且如果出明文他们不危及安全,那么我建议以下...

当你插入文本(由加密客户端)添加到表中,还将相关的明文单词插入到另一列中。然后在该列上使用FULLTEXT

FULLTEXT会更快,但有一定的局限性。