使用
AESEncryptHandler进行加解密
一、Handler使用方式
1.1 数据层实体使用注解
对需要加解密的字段 增加@TableField(typeHandler = AESEncryptHandler.class)注解
@TableName(value = "td_ds_payment_setting", autoResultMap = true)
public class TdDsPaymentSetting extends SuperEntity {
private static final long serialVersionUID = 1L;
@TableId(value="id", type = IdType.ASSIGN_ID)
private Long id;
private String dsMerchantId;
private String website;
@TableField(typeHandler = AESEncryptHandler.class)
private String email;
基于baseMapper内部方法实现增、删、改、查的使用Handler注解实现加解密
注意:@TableName注解需要增加autoResultMap = true,否则结果集不解密
二、自定义查询
如果不是基于baseMapper内部方法操作,需要显示放入handler
@Results({
@Result(column = "email", property = "email", typeHandler = AESEncryptHandler.class)})
@Select("select * from td_ds_payment_setting t WHERE ds_merchant_id=#{userId}")
TdDsPaymentSetting selectPaymentByUserId(@Param("userId") String userId);
注意:自定义查询需要使用@select注解,否正解密不生效
三、敏感字段使用(精确操作)
@Override
public TdDsUser getDsByMail(String mail) {
if(StringUtils.isEmail(mail)){
List<TdDsUser> users = baseMapper.selectList(
new QueryWrapper<TdDsUser>().eq("mail", AESTools.encrypt(mail))
);
return getUser(users);
} else{
throw new BusinessException("Unreasonable username.");
}
}







网友评论