当前公司数据平台使用的处理架构,由Hive进行大数据处理,然后将应用数据同步到PostgreSQL中做各类外围应用。由于部分数据涉及敏感信息,必须在Hive进行加密,然后在PG使用时再进行单个数据解密,并监控应用的数据调用事情。因此需要实现Hive加密到PostgreSQL解密还原的过程。在不编写UDF的情况下,有以下方法。

HIVE加密

select

base64(aes_encrypt(敏感用户名, 'Asxdc67890gt5rf3')) 加密后用户名

from table_name

关键点解析

密码长度必须是128、192、256个字节

没有各种参数来控制加密过程

PG解密

select

convert_from(decrypt(decode(加密后用户名,'base64'),'Asxdc67890gt5rf3','aes-ecb/pad:pkcs'),'utf8') 解密用户名

from table_name

关键参数解析

algorithm是下列之一:

bf — Blowfish

aes — AES (Rijndael-128, -192 或 -256)

mode是下列之一:

cbc — 下一个块依赖前一个(默认)

ecb — 每一个块被独立加密(只用于测试)

padding是下列之一:

pkcs — 数据可以是任意长度(默认)

none — 数据必须是密码块尺寸的倍数

参考资料:

Hive函数aes_encrypt、 aes_decrypt详细说明页面

[HIVE-11593] Add aes_encrypt and aes_decrypt UDFs - ASF JIRA

PostgreSQL加解密模块pgcrypto详细说明页面

http://postgres.cn/docs/14/pgcrypto.html

参考链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: