有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用NamedQueries查询加密列

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

使用加密值的命名查询是否存在问题?? 有解决办法吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    还有几件事,Base64是编码而不是加密,因此不是隐藏数据的安全方式。除非您在base64编码之前用其他东西对其进行加密,否则您可能需要更改它

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

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