如何解决用pgcrypto加密整个列
我需要使用AES-256密钥对某些列进行加密,我已经检查了pgcrypto的官方文档。但是他们的例子让我发疯。
例如,我的数据库如下所示。
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
我尝试过这样的事情:
UPDATE my_table SET first_name = ENCRYPT(user_name,'my_encryption_key')
我需要加密first_name和last_name列。我该如何实现?
谢谢, qwew
解决方法
将pgp_sym_XXX()
函数与armor()
或encode()
一起使用以得到base-64:
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,'cipher-algo=aes256')
);
AES-256速度很慢,因此可能需要很长时间才能对整个表运行。
要解密:
select pgp_sym_decrypt(dearmor(last_name),'cipher-algo=aes256')
from my_table;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。