首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pgcrypto加密整个列

使用pgcrypto加密整个列
EN

Stack Overflow用户
提问于 2020-09-22 21:53:59
回答 1查看 97关注 0票数 1

我需要使用AES-256密钥加密一些列,我已经检查了pgcrypto的官方文档。但他们的例子让我抓狂。

例如,我有这样的数据库。

代码语言:javascript
复制
     id       first_name      last_name       is_active

     0        John            last_name 1        True
     1        David           last_name 2        False
     2        Vincent         last_name 3        True
     3        Dean            last_name 5        False

我尝试过这样的东西:

代码语言:javascript
复制
     UPDATE my_table SET first_name = ENCRYPT(user_name, 'my_encryption_key')

我需要加密first_name和last_name列。我该如何实现它??

谢谢,qwew

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-22 22:16:29

pgp_sym_XXX()函数与armor()encode()一起使用可获得base-64:

代码语言:javascript
复制
update my_table
   set first_name = armor(
                      pgp_sym_encrypt(first_name, 'your_key', 'cipher-algo=aes256')
                    ),
       last_name =  armor(
                      pgp_sym_encrypt(last_name, 'your_key', 'cipher-algo=aes256')
                    );

AES-256很慢,因此可能需要很长时间才能针对整个表运行。

解密:

代码语言:javascript
复制
select pgp_sym_decrypt(dearmor(last_name), 'your_key', 'cipher-algo=aes256')
  from my_table;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64011268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档