密文模糊检索

对密文数据进行分词组合,将分词组合的结果集分别进行加密,查询时通过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?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

还有一些高端的方案:

  • 数据库中字符数据的模糊匹配加密方法: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

相关推荐

  1. 模糊检索

    2024-04-09 02:50:03       21 阅读
  2. FMCOS使用带MAC增加/修改

    2024-04-09 02:50:03       25 阅读
  3. MySQL数据加模糊查询

    2024-04-09 02:50:03       12 阅读
  4. RSA 加密解,中不乱码

    2024-04-09 02:50:03       32 阅读
  5. MD5加密返回32位字符串

    2024-04-09 02:50:03       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 02:50:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 02:50:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 02:50:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 02:50:03       20 阅读

热门阅读

  1. 二分练习题——奶牛晒衣服

    2024-04-09 02:50:03       20 阅读
  2. Transformer架构顶层应用的基础知识

    2024-04-09 02:50:03       15 阅读
  3. pyqtgraph 实时更新柱状图

    2024-04-09 02:50:03       15 阅读
  4. SSH常见运维总结

    2024-04-09 02:50:03       15 阅读
  5. 深入了解 STL:强大的编程工具

    2024-04-09 02:50:03       18 阅读
  6. Springboot注解知识-文字描述(学习笔记)

    2024-04-09 02:50:03       13 阅读