algorithm - 如何在另一个数据仓库平台中解密 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程序或别的什么?
有人能分享一下将加密数据迁移到另一个平台的经验吗?
解决方案
它是标准的 AES 算法,但 AS400 中的默认 CCSID 是 EBCDIC。
解密后是否需要将 DATA 转换为 UTF-8。
推荐阅读
- sql - SQL:在不使用 PIVOT 的情况下获取多列的差异
- sql - 在 POSTGRESQL 中对查询进行排名
- javascript - 来自标题按钮的回调 react-navigation x5
- python - 每小时/每天重新采样时间戳并结合其他相应行的值
- javascript - 使用 AJAX torest 框架上传图片
- python - 我希望该项目命名为其他名称。如何安全地重命名项目?
- google-maps - 如何获取谷歌地图数据并在应用程序中显示
- c# - 我无法在 SQLite-net 中创建数据库
- flutter - 颤振:获取css:在图像应用背景的效果之后
- ruby - Ruby类继承返回未定义的方法