开发需要对身份证号进行前后台脱敏加密

但是现在还多表的数据都是以身份证号作为联查条件,并且还需要用身份证提取出籍贯信息
 

身份证脱敏加密规则,需要保留前4后3,其他*号替换;
需要身份证前六位作为籍贯信息查询

要怎么做?
谢谢

我理解的脱敏应当是后台传递数据给前台时,对原始数据进行改造,如手机号传给前台时应该是188****888这种类型;

如果前台也传递脱敏的数据如188****8888给后台,后台是无法根据这个进行查询的。如果前台为了安全不能传递明文,那么此时应当是考虑前台加密数据,然后传到后台,后台解密后在进行查询。

首先需要说明是数据库进行脱敏还是前端做了脱敏?

一:数据库脱敏

按照你描述的需求,如果是数据库脱敏是没有任何办法的;

 

二:前端脱敏

说明:所谓前端脱敏,是指数据库中的身份证信息是正常,查询出来的数据在后端做了脱敏处理。

解决方案:

1、可找到脱敏的代码进行籍贯判断或在映射的实体中加入字段

 

可参照下图(如再不明白,我实在没办法了)

 

如果数据重要,最好在后台脱敏,前端脱敏会被懂行的查出来。至于实现的话就用截取字符串拼接就可以

1、数据获取后存储在数据库中。

2、按照需求查询出需要展示的身份证号码。

3、通过完整的身份证号码分析出籍贯、年龄、性别等信息。

4、身份证号码加密

5、数据组合(加密后的身份证号码、籍贯、年龄、性别)

6、返回数据给前端展示。

注:除1、6步涉及到前端交互外,其他所有操作都是服务端独立完成。

如果再不明白,我就真没办法了

这个在数据库select的时候,就可以脱敏,就不需要java查出来一个list,到时候还要循环处理

直接用国密局算法的api加密就行了呗,各个语言的api都有