加密也能模糊查?SpringBoot 玩转敏感信息存储新姿势!
电脑教程 2025-11-26 21:32:40
0
在金融 、加密政务 、模糊医疗等对数据安全要求极高的查S储新行业里 ,“加密落盘”已经是转敏姿势敏感信息(手机号、身份证号、感信银行卡号等)的息存标准动作。但仅存储安全还不够 ,加密真实业务里时常需要模糊检索来提升用户与运营效率 ,模糊例如 :输入“6688”也能定位到某个用户手机号 。查S储新 问题是转敏姿势:常规加密后,LIKE 模糊匹配天生“失效” 。感信如果只允许精准匹配,息存系统实现简单 ,源码库加密但无法满足大多数检索诉求。模糊于是查S储新我们需要在安全与可用之间找到“桥” 。
本文在完整评估“明文匹配”“数据库函数解密”“ES 分词”之后,重点给出一套无需引入 ES、易维护、可扩展的分片存储方案落地实现 ,并提供可直接运行的 Spring Boot 代码骨架 ,帮你把方案真正搬到生产环境。
目标
让加密落盘的字段 ,也能获得接近 LIKE 的模糊查询体验:
数据库存密文;查询支持“任意位置片段”匹配;性能可控、架构简单、建站模板易于水平扩展 。思考路径回顾
明文匹配(内存解密 / 数据库解密函数):实现简单 ,但在一致性、性能与扩展性上有明显短板 。ES 分词检索:性能强、扩展性好,但引入了新组件与一致性同步成本 。分片存储(本文主角) :把原文滚动切片并按片加密/摘要建立反查索引 ,“以密取密”,保留了架构简洁性,又兼顾性能与可运维性。分片存储方案(核心设计)
思路复述将原文(如手机号 19266889900)按固定长度 k 滚动切片 :k=3 → 192, 926, 266, 668, 688, 889, 899, 990, 900为整字段存强加密密文(用于展示前解密);为每个分片存确定性摘要(建议 HMAC-SHA256) ,这样同一明文片段总能映射为同一“密文指纹” ,便于等值匹配;查询时,对关键词按相同规则切片 → 计算每片 HMAC → 命中映射表 → 回表查主表 → 解密展示。为何分片用 HMAC 而不是服务器租用对称加密? 传统对称加密(如 AES-GCM)会使用随机 IV ,导致同样的明文每次密文都不同,不利于等值匹配。而 HMAC(带密钥的哈希)稳定 、不可逆