Apache nifi 在Nifi中使用EncryptContent处理器进行加密和解密,希望读取属性中的内容

Apache nifi 在Nifi中使用EncryptContent处理器进行加密和解密,希望读取属性中的内容,apache-nifi,Apache Nifi,我正在尝试使用EncryptContent Processor for AES加密来加密内容 加密后,我试图读取属性中的全部内容 完成后,我想用包含加密内容的属性替换整个内容 但是现在加密的内容不一样了,所以我无法解密 处理器如下所示 EncrptContent==>ExtractText(读取属性中的全部内容)==>ReplaceText(具有包含加密内容的属性的全部内容)===>EncrptContent(用于解密) 或者,如果有任何其他方法仅使用AES加密对属性进行加密。base64加密我

我正在尝试使用EncryptContent Processor for AES加密来加密内容

加密后,我试图读取属性中的全部内容

完成后,我想用包含加密内容的属性替换整个内容

但是现在加密的内容不一样了,所以我无法解密

处理器如下所示

EncrptContent==>ExtractText(读取属性中的全部内容)==>ReplaceText(具有包含加密内容的属性的全部内容)===>EncrptContent(用于解密)


或者,如果有任何其他方法仅使用AES加密对属性进行加密。base64加密我可以做,但AES128加密是受欢迎的

我认为这里有很多东西需要解开:

  • 将大量数据从flowfile内容移动到属性通常是一种反模式。有时,内容是纯文本或JSON,将特定值提取到属性以进行路由或用于扩展是有意义的。但是,将任意内容字节带到属性中会对性能产生负面影响,因为这样做会影响性能
  • 如果使用
    EncryptContent
    加密流文件内容,则密码文本将存储为原始字节。属性是字符串,因此很可能(几乎可以保证)会发生数据损坏和丢失,将原始字节从内容拖到属性
  • 我不理解您提出的流——加密内容,将其提取到属性,然后用该属性替换流文件内容在语义上是不可行的,但实际上只会破坏数据
  • Base64是一种编码方案,而不是加密算法。将数据转换为Base64可使其在仅支持US-ASCII字符的介质中抵御数据丢失,但不能保护数据免受检查
  • 如果您的目标是加密属性,则可以使用
    ExecuteScript
    处理器和自定义代码对属性值进行加密

  • 我认为这里有很多东西需要打开:

  • 将大量数据从flowfile内容移动到属性通常是一种反模式。有时,内容是纯文本或JSON,将特定值提取到属性以进行路由或用于扩展是有意义的。但是,将任意内容字节带到属性中会对性能产生负面影响,因为这样做会影响性能
  • 如果使用
    EncryptContent
    加密流文件内容,则密码文本将存储为原始字节。属性是字符串,因此很可能(几乎可以保证)会发生数据损坏和丢失,将原始字节从内容拖到属性
  • 我不理解您提出的流——加密内容,将其提取到属性,然后用该属性替换流文件内容在语义上是不可行的,但实际上只会破坏数据
  • Base64是一种编码方案,而不是加密算法。将数据转换为Base64可使其在仅支持US-ASCII字符的介质中抵御数据丢失,但不能保护数据免受检查
  • 如果您的目标是加密属性,则可以使用
    ExecuteScript
    处理器和自定义代码对属性值进行加密

  • 我相信AES产生字节。只能将文本存储到属性中。因此,在此之前,您必须将字节转换为文本,base64是一个不错的选择
    EncyrptContent->Base64EncodeContent->ExtractText
    我相信AES产生字节。只能将文本存储到属性中。因此,在此之前,您必须将字节转换为文本,base64是一个不错的选择<代码>百科全书内容->基本64编码内容->提取文本