我们需要将数据从db2 (db2 for AS400)发送到另一个数据仓库平台(Hive)。但是我们需要首先加密DB2中的数据。然后目标服务器将连接到DB2以导出数据并解密目标服务器中的数据。
SQL加密DB2中的数据:
INSERT INTO TESTAES
SELECT ENCRYPT_AES( ACCOUNT, '1234567890') FROM TESTPLAIN;我知道DECRYPT_CHAR函数在DB2中:
SELECT DECRYPT_CHAR( ACCOUNT, '1234567890') FROM TESTAES但是,在我们将这个表加载到另一个平台后,我们不知道如何解密数据。我们不知道DB2解密算法。
我认为梅的工作方式:
(1)给出了ENCRYPT_AES在DB2中的解密算法,并在targer服务器上编写程序对数据进行解密。但是IBM在任何文档中都共享这一点。我在IBM DB2文档中搜索过,只是告诉我们
加密算法:使用的内部加密算法来自IBM的CLiC工具包。128位加密密钥是使用SHA1消息摘要?https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscaencryptaes.htm从密码派生的。
(2)获取ENCRYPT_AES在DB2中的解密算法包,并在targer服务器上导入该包对数据进行解密。IBM有这样的包吗?
(3)使用另一个开源/通用函数/包对DB2中的数据进行加密。我们知道算法,我们可以编写程序/或使用相同的算法包来解密数据。但我不知道如何在AS400 db2中加密数据,除了ENCRYPT_AES。或者写一个java程序或者别的什么?
有人会分享加密数据迁移到另一个平台的经验吗?
发布于 2021-01-07 08:00:34
这是标准的AES算法,但在AS400中默认的CCSID是EBCDIC。
解密后需要将数据转换为UTF-8吗?
发布于 2021-01-08 08:21:14
我认为这个问题可以结束。加酶
(1)我请求IBM技术支持,他建议我们自己编写加密/解密函数。也许DB2加密函数的算法是一个秘密。
(2)我创建了一个DB2 UDF来调用AS400中的。终于起作用了。我可以在DB2中对数据进行加密,在其他数据库得到加密数据之后,可以在其他数据库中解密。
https://stackoverflow.com/questions/65593538
复制相似问题