2016-06-21 84 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會更快,但有一定的侷限性。