SpringBoot中数据加密存储和获取后解密展示AttributeConverter的实现

1. 需求:

数据库存入数据的时候要加密处理,不同的字段加密方式不同。

界面上展示的时候要解密处理,解密方式相同。

2. 实现方案一:

定义公共的加密解密方法,然后在对应的字段上重写他的getset方法,然后调用公共加密解密算法。

3. 实现方案二:

用AttributeConverter实现

代码如下:

SpringBoot中数据加密存储和获取后解密展示AttributeConverter的实现

实体对象上这样写:

@Convert(converter = SFStringEncryptConverter.class)
private String cardNumber;

但是 这样只能实现一种加密和解密,如果不同的字段对应不同的算法就难以实现,因为只能传过来一种参数。

实现方案3:

想法:实现类中增加一个成员变量dataType,但是dataType的值需要从实体对象上传过来,就必须重写covert注解,但是convert注解不能被继承,自己重新写的实现了不起作用,所以这种办法行不通。

实现方案4:

分别写多个实现类,分别实现AttributeConverter,然后分别写到不同的字段上。

 

疑问:本人总感觉实现方案3 可能实现,望大神不吝赐教。

 

上一篇:swagger请求参数在header中添加token


下一篇:ajax的contentType和dataType