美團二面:加密后的數(shù)據(jù)如何進行模糊查詢??被問懵了。。
如何對加密后的數(shù)據(jù)進行模糊查詢
沙雕做法(不動腦思考直男的思路,只管實現(xiàn)功能從不深入思考問題) 常規(guī)做法(思考了查詢性能問題,也會使用一些存儲空間換性能等做法) 超神做法(比較高端的做法從算法層面上思考)
沙雕做法
將所有數(shù)據(jù)加載到內(nèi)存中進行解密,解密后通過程序算法來模糊匹配 將密文數(shù)據(jù)映射一份明文映射表,俗稱tag表,然后模糊查詢tag來關聯(lián)密文數(shù)據(jù)
沙雕一
DES來舉例,13800138000加密后的串HE9T75xNx6c5yLmS5l4r6Q==占24個字節(jié)。| 條數(shù) | Bytes | MB |
Out of memory,這樣做如果數(shù)據(jù)少只有幾百、幾千、幾萬條時是完全可以這樣做的,但是數(shù)據(jù)量大就強烈不建議了。常規(guī)做法
在數(shù)據(jù)庫實現(xiàn)加密算法函數(shù),在模糊查詢的時候使用 decode(key) like '%partial%對密文數(shù)據(jù)進行分詞組合,將分詞組合的結(jié)果集分別進行加密,然后存儲到擴展列,查詢時通過 key like '%partial%'
常規(guī)一
常規(guī)二
ningyu1使用4個字符為一組的加密方式,第一組ning ,第二組ingy ,第三組ngyu ,第四組gyu1 … 依次類推。
key like “%partial%” 查庫。13800138000加密前占11個字節(jié),加密后的串HE9T75xNx6c5yLmS5l4r6Q==占24個字節(jié),增長是2.18倍,所以一個優(yōu)秀的算法是多么的重要,能為公司節(jié)省不少成本,但是話又說回來算法工程師的工資也不低,所以我也不知道是節(jié)省成本還是增加成本,哈哈哈…你們自己算吧。淘寶密文字段檢索方案:https://open.taobao.com/docV3.htm?docId=106213&docType=1 阿里巴巴文字段檢索方案:https://jaq-doc.alibaba.com/docs/doc.htm?treeId=1&articleId=106213&docType=1 拼多多密文字段檢索方案:https://open.pinduoduo.com/application/document/browse?idStr=3407B605226E77F2 京東密文字段檢索方案:https://jos.jd.com/commondoc?listId=345
超神做法
數(shù)據(jù)庫中字符數(shù)據(jù)的模糊匹配加密方法:https://www.jiamisoft.com/blog/6542-zifushujumohupipeijiamifangfa.html
一種基于BloomFilter的改進型加密文本模糊搜索機制研究:http://kzyjc.cnjournals.com/html/2019/1/20190112.htm 支持快速查詢的數(shù)據(jù)庫如何加密:https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html 基于Lucene的云端搜索與密文基礎上的模糊查詢:https://www.cnblogs.com/arthurqin/p/6307153.html
云存儲中一種支持可驗證的模糊查詢加密方案:http://jeit.ie.ac.cn/fileDZYXXXB/journal/article/dzyxxxb/2017/7/PDF/160971.pdf
總結(jié)
推薦閱讀:
不是你需要中臺,而是一名合格的架構(gòu)師(附各大廠中臺建設PPT)
論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?
企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!
評論
圖片
表情
