【发布时间】:2021-01-06 09:52:13
【问题描述】:
我们需要将数据从 db2 (db2 for AS400) 发送到另一个数据仓库平台 (Hive)。但是我们需要先加密 DB2 中的数据。然后目标服务器将连接到 DB2 以导出数据并解密目标服务器中的数据。
在 DB2 中加密数据的 SQL:
INSERT INTO TESTAES
SELECT ENCRYPT_AES( ACCOUNT, '1234567890') FROM TESTPLAIN;
我知道 DB2 中的 DECRYPT_CHAR 函数:
SELECT DECRYPT_CHAR( ACCOUNT, '1234567890') FROM TESTAES
但是当我们将此表加载到另一个平台后,我们不知道如何解密数据。我们不知道 DB2 解密算法。
我认为可行的方式:
(1)在DB2中得到ENCRYPT_AES的解密算法,我们可以在目标服务器中编写程序来解密数据。但 IBM 在任何文档中都分享了这一点。我在 IBM DB2 文档中搜索过,只是告诉我们
加密算法:使用的内部加密算法来自 IBM Research 的 CLiC Toolkit。 128 位加密密钥是使用 SHA1 消息摘要从密码导出的?https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscaencryptaes.htm
(2)在DB2中获取ENCRYPT_AES的解密算法包,我们可以将这个包导入目标服务器来解密数据。 IBM 有没有这样的包?
(3) 使用另一个开源/通用函数/包来加密 DB2 中的数据。我们知道算法,我们可以编写程序/或使用相同的算法包来解密数据。但我不知道我们如何加密 AS400 db2 中的数据,除了 ENCRYPT_AES。也许写一个java程序或别的什么?
有人能分享一下将加密数据迁移到另一个平台的经验吗?
【问题讨论】:
标签: algorithm encryption db2