首页 > 解决方案 > 我想知道是否可以使用用户定义的 mysql 函数对 @ColumntTansformer 进行数据加密,而无需对密钥进行硬编码

问题描述

我正在尝试为我的实体中的敏感数据(例如电子邮件 ID)实现列级数据加密,我想为此使用 @ColumnTransformer,因为这似乎是一个简洁而简单的实现。我正在使用 MySQL 数据库。但是使用以下内容将不允许我拥有可编程的密钥。

@Column(name = "EMAIL")
    @ColumnTransformer(
            read = "AES_DECRYPT(UNHEX(EMAIL),'test')",
            write = "HEX(AES_ENCRYPT(?,'test')"
    )
    private String email;

我可以使用用户定义的 MySQL 函数来隐藏加密密钥,并且我不必将其作为硬编码数据传递。还有其他方法可以使密钥可编程。我提到了这个我想知道 Hibernate 是否有办法执行 ColumnTransformer 的编程配置?但这似乎是一个非常复杂的解决方案。

标签: mysqlspring-boothibernateencryptionaes

解决方案


推荐阅读