首页 > 解决方案 > 如何在另一个数据仓库平台中解密 DB2 数据

问题描述

我们需要将数据从 db2(DB2 for AS400)发送到另一个数据仓库平台(Hive)。但是我们需要先加密 DB2 中的数据。然后目标服务器将连接到 DB2 以导出数据并解密目标服务器中的数据。

SQL 加密 DB2 中的数据:

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程序或别的什么?

有人能分享一下将加密数据迁移到另一个平台的经验吗?

标签: algorithmencryptiondb2

解决方案


它是标准的 AES 算法,但 AS400 中的默认 CCSID 是 EBCDIC。

解密后是否需要将 DATA 转换为 UTF-8。


推荐阅读