电动车网站模板,网站建设公司首选华网天下,黄页88网,苏州 互联网企业对密文数据进行分词组合#xff0c;将分词组合的结果集分别进行加密#xff0c;查询时通过key like %partial%。
先对字符进行固定长度的分组#xff0c;将一个字段拆分为多个#xff0c;比如说根据4位英文字符#xff08;半角#xff09;#xff0c;2个中文字符#…对密文数据进行分词组合将分词组合的结果集分别进行加密查询时通过key like %partial%。
先对字符进行固定长度的分组将一个字段拆分为多个比如说根据4位英文字符半角2个中文字符全角为一个检索条件举个例子 ningyu1使用4个字符为一组的加密方式第一组ning 第二组ingy 第三组ngyu 第四组gyu1 … 依次类推。 如果需要检索所有包含检索条件4个字符的数据比如ingy 加密字符后通过 key like “%partial%” 查库。
我们都知道加密后长度会增长增长的这部分长度存储就是我们要花费的额外成本典型的使用成本来换取速度密文增长的幅度随着算法不同而不同以DES举例13800138000加密前占11个字节加密后的串HE9T75xNx6c5yLmS5l4r6Q占24个字节增长是2.18倍。
回到主题这个方法虽然可以实现加密数据的模糊查询但是对模糊查询的字符长度是有要求的以我上面举的例子模糊查询字符原文长度必须大于等于4个英文/数字或者2个汉字再短的长度不建议支持因为分词组合会增多从而导致存储的成本增加反而安全性降低。
下面整理了几家电商平台的密文字段检索方案的说明 淘宝密文字段检索方案https://open.taobao.com/docV3.htm?docId106213docType1 阿里巴巴文字段检索方案https://jaq-doc.alibaba.com/docs/doc.htm?treeId1articleId106213docType1 拼多多密文字段检索方案https://open.pinduoduo.com/application/document/browse?idStr3407B605226E77F2 京东密文字段检索方案https://jos.jd.com/commondoc?listId345
还有一些高端的方案 数据库中字符数据的模糊匹配加密方法https://www.jiamisoft.com/blog/6542-zifushujumohupipeijiamifangfa.html 这里提到的Hill密码处理和模糊匹配加密方法FMES可以重点看看. 一种基于BloomFilter的改进型加密文本模糊搜索机制研究http://kzyjc.cnjournals.com/html/2019/1/20190112.htm 支持快速查询的数据库如何加密https://www.jiamisoft.com/blog/5961-kuaisuchaxunshujukujiami.html 基于Lucene的云端搜索与密文基础上的模糊查询https://www.cnblogs.com/arthurqin/p/6307153.html 基于Lucene的思路就跟我们上面介绍的常规做法二类似对字符进行等长度分词将分词后的结果集加密后存储只不过存储的db不一样一个是关系型数据库一个是es搜索引擎。 云存储中一种支持可验证的模糊查询加密方案http://jeit.ie.ac.cn/fileDZYXXXB/journal/article/dzyxxxb/2017/7/PDF/160971.pdf
参考:讲一讲加密数据如何进行模糊查询 | 凝雨 - Yun | 快乐编程每一天 - Happy Coding Every Day