在需加密字段上增加如下注解
@Column(columnDefinition= "BLOB", name="address" )
@ColumnTransformer(read = "CAST(AES_DECRYPT(address, '$*^@!#') as char(1000))", write = "AES_ENCRYPT(?, '$*^@!#')" )
public String getAddress() {
return address;
}
说明:
@ColumnTransformer:用于对数据进行sql层处理
AES_DECRYPT:解密,第一个参数为列名,第二个参数为密钥,解密之后在mysql中应该也是bolb所以需要加上CAST来强转为java可以直接接收的char类型
AES_ENCRYPT:加密,加密之后是blob类型所以数据库中需使用blob来存储