我们有一个postgresql数据库,作为GDPR的一部分,我们需要对某些列数据进行加密,我尝试在Internet上进行搜索,但无法获得关于如何实现此目标的任何具体答案。
例如:假设我们有一个如下表:
Table "public.demo"
Column | Type | Modifiers
------------+------+-----------
firstname | text |
secondname | text |
city | text |
并且它已经有数据:
firstname | secondname | city
-----------+------------+------
john | doe | ban
hich | ke | can
val | nuti | syd
(3 rows)
现在,我们假设只需要加密名字,所以基本上我需要调用一个脚本来加密名字,并且在读取Java代码时,我们可以解密和读取。
上面的内容也需要在插入查询的情况下起作用。
答案 0 :(得分:1)
如果您使用的是JPA,则可以使用Postgres的pgcrypto模块,然后在您的JPA实体中使用@ColumnTransformer
:Tutorial here.
如果您使用的是普通的老式Java,则适用相同的概念,但是您将需要做更多的工作在服务器端,因为postgresql中没有“ TRIGGER ON SELECT”(您可以使用它来加密选择时更新/插入和解密)。