做某些项目需要对特定的字段进行加密处理,比如手机号码、身份证号码、家庭人址字段数据是敏感数据或者某单位敏感字
第一种办法就是先解密在查询数据信息
查询需要展示的数据信息A,然后将A信息进行循环解密,在模糊对比数据信息,进行某敏感字段过滤,最后重新组装。
这种方法是最容易想到的,但有一个比较明显的问题是,模糊查询的过程是在内存中进行的,如果数据量特别大,很容易导致内存溢出,因此不推荐在生产中使用这种方法
第二种办法就是创建明文映射表
新建一张分词密文映射表,在敏感字段数据新增、修改的后,
对敏感字段进行分词组合,如"敌人在哪"的分词组合有"敌"、"人"、"在"、"哪"等,
再对每个分词进行加密,建立起敏感字段的分词密文与目标数据行主键的关联关系;
在处理模糊查询的时候,对模糊查询关键字进行加密,用加密后的模糊查询关键字,
对分词密文映射表进行like查询,得到目标数据行的主键,再以目标数据行的主键为条件返回目标表进行精确查询。