使用NamedQueries查询加密列

时间:2013-05-01 16:16:53

标签: java database jpa encryption named-query

我有一个带JPA的java应用程序,我正在使用oracle DB。 在保存到数据库之前,需要对实体的一个属性进行加密。 我正在使用应用程序加密,Base64。 我有一个命名查询根据此属性搜索实体。 现在由于加密,我需要首先加密来自应用程序的值并在数据库中搜索加密值,但查询无法找到具有此值的实体。

带有加密值的命名查询是否存在问题? 有解决方案吗?

由于

1 个答案:

答案 0 :(得分:0)

很多事情,Base64编码不加密所以不是一种隐藏数据的安全方法。除非您在base64编码之前使用其他内容加密它,否则您可能想要更改它。

数据库应该没有问题,它应该像任何其他字符串一样对待它。虽然在数据库字段长度小于存储加密字符串所需的长度之前,我遇到过这个问题。

手动检入数据库,以防在插入密码时被截断。还可以在SQL客户端中运行测试以确保其意外行为,如果它在SQL客户端中工作,则应用程序不会将正确的值发送到数据库(或者根据其他字段将其过滤掉)