java - 数据 jpa 的字段级加密
问题描述
我能够使用转换器实现数据的字段级加密。但它仅适用于实体。不适用于 JPA 存储库。例如,我需要使用 JPARepository(如 findBySensitiveColumn)搜索敏感数据。显然那没有加密,所以它不能用纯文本在数据库中搜索。如果我尝试使用转换器内部使用的相同加密,它会给我不同的价值,最终导致与数据库不匹配。我知道这可能是重复的问题。但我也尝试过加密监听器。但它不起作用。请帮忙
解决方案
一种可能的解决方案是在加密之前对要搜索的部分数据字段进行哈希处理,即对全部或部分明文进行哈希处理。然后将哈希存储在一个新列中,并带有指向加密数据的链接。当您想要搜索加密数据时,对您的搜索进行哈希处理,找到匹配的哈希值并按照链接检索适当的数据以进行解密。
最大的问题是部分搜索和模糊匹配,这是行不通的。哈希对数据更改非常敏感,因此您必须完全匹配搜索键。“Chris Smith”应该是“Chris J. Smith”时会失败。您将在搜索中失去很多灵活性。
推荐阅读
- c++ - 在 Visual Studio 2017 中构建带有大量“系统找不到指定的路径”的 C++ 应用程序时,“cmd.exe”以代码 3 退出。输入输出
- spring-integration - 如何编写一个基本的自定义路由器?
- java - 警报对话框样式不改变多选项目文本颜色
- javascript - Node.js - 使用 'async' 和 'await' 和 sequelize ORM
- java - 操作数上的后增量运算符
- docker - 更改容器主机映射 Docker-compose
- java - 我想显示一个变量值,其中变量名与连接字符串匹配
- xamarin - 使用 CrossMedia 从设备照片库中选择每个图像后,在 ListView Xamarin 中显示绑定图像
- javascript - 在反应中使用回调后它不起作用?
- redis - Kubernetes上部署redis集群需要sentinal是什么?