首页 > 解决方案 > 数据 jpa 的字段级加密

问题描述

我能够使用转换器实现数据的字段级加密。但它仅适用于实体。不适用于 JPA 存储库。例如,我需要使用 JPARepository(如 findBySensitiveColumn)搜索敏感数据。显然那没有加密,所以它不能用纯文本在数据库中搜索。如果我尝试使用转换器内部使用的相同加密,它会给我不同的价值,最终导致与数据库不匹配。我知道这可能是重复的问题。但我也尝试过加密监听器。但它不起作用。请帮忙

标签: javaencryptionspring-data-jpa

解决方案


一种可能的解决方案是在加密之前对要搜索的部分数据字段进行哈希处理,即对全部或部分明文进行哈希处理。然后将哈希存储在一个新列中,并带有指向加密数据的链接。当您想要搜索加密数据时,对您的搜索进行哈希处理,找到匹配的哈希值并按照链接检索适当的数据以进行解密。

最大的问题是部分搜索和模糊匹配,这是行不通的。哈希对数据更改非常敏感,因此您必须完全匹配搜索键。“Chris Smith”应该是“Chris J. Smith”时会失败。您将在搜索中失去很多灵活性。


推荐阅读