Jpa实现入库自动加密,查询时自动解密


有时候为了满足公司需求,需要对数据进行入库时加密。实现自动加解密之后代码逻辑还是和以前一样。

 

实现原理:利用Jpa的自定义数据类型转换,只不过我们这里是String转String,即从明文转密文或者密文转明文。

 

代码

/**
 * 示例.
 * <p>
 * Created by DaiWang on 2020/06/02.
 * </p>
 *
 * @author DaiWang
 */
@Data
@EqualsAndHashCode(of = "id")
@Entity
@Table(name = "tbl_xxx_chlrecord")
public class ChannelRecord2 implements Serializable {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private String id;

  /**
   * 请求参数。
   * 将自动进行加解密。
   */
  @Column(name = "[request_param]")
  @Convert(converter = EncryptConverter.class)
  private String requestParam;

/** * 自定义转换器: 入库加密,出库解密. * @author DaiWang */ @Converter // Converter属性autoApply 需默认或为false,否则未指定对的字段也会被加密 public static class EncryptConverter implements AttributeConverter<String, String> { /** * 加密. */ @Override public String convertToDatabaseColumn(String text) { // ... 加解密实现 return "密文"; } /** * 解密. */ @Override public String convertToEntityAttribute(String s) { // ... 加解密实现 return "明文"; } } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM