首页 > 解决方案 > jython 的 PyCryptodome 替代品

问题描述

我正在尝试为 Apache Nifi 合并一个简单的加密处理器。我正在使用脚本处理器模块来包含一个 Python 脚本,该脚本执行使用 AES 加密和解密的功能。我在加载模块 PyCryptodome(我也尝试过 pycrypto)时遇到问题,它为我提供了功能。我读过这个模块无法加载,因为它不是纯 python,显然,Nifi 不支持。

关于我可以用什么来替代这个模块的任何建议?

标签: pythonapache-nifipycrypto

解决方案


并不是 NiFi 本身不支持原生 Python 模块,而是我们在 NiFi 中使用的 Jython 引擎(因为 NiFi 是一个纯 Java 实现)不支持它。如果您在运行 NiFi 的节点上有一个 Python 解释器,您可以使用ExecuteStreamCommand您的脚本(使用本机导入)来外壳到 Python,您将获得流文件的内容stdin并编写您的加密/decrypt 逻辑输出到stdout,这将成为传出流文件的内容。

我正在研究 Py4J 处理器,以便我们可以绕过 Jython 对本机模块的限制,但您仍然必须自带 Python (BYOP)。目前,只要您不想做任何比接收流文件内容和写出流文件内容更复杂的事情,ExecuteStreamCommand 就可以解决问题。


推荐阅读