You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Apache NiFi后更新加密算法失败,报AES/GCM/NoPadding解密错误

Apache NiFi升级后加密算法迁移解密失败(AEADBadTagException)解决

问题根源

你遇到的javax.crypto.AEADBadTagException: mac check in GCM failed错误,本质是新旧加密算法不兼容:之前用旧算法PBEWITHMD5AND256BITAES-CBC-OPENSSL加密的敏感属性(如密码、密钥),无法直接用新的AES/GCM/NoPadding算法解密。直接修改加密配置会导致NiFi无法读取原有加密数据,触发解密失败。

分步解决流程

1. 恢复原有配置,确保NiFi正常启动

先回滚加密配置,让NiFi能正常运行:

  • 打开NiFi安装目录下的conf/nifi.properties文件
  • 将nifi.sensitive.props.cipher.algorithm的值改回PBEWITHMD5AND256BITAES-CBC-OPENSSL
  • 重启NiFi,确认服务正常启动、日志无解密错误

2. 备份关键数据

修改配置前务必备份:

  • 备份conf/nifi.properties文件
  • 备份conf/flow.xml.gz文件(存储所有流配置及敏感属性)
  • 可选:用NiFi CLI执行nifi export-sensitive-properties命令导出敏感属性副本

3. 配置过渡加密,完成平滑迁移

通过添加旧算法兼容配置,让NiFi自动完成新旧加密数据的转换:

  1. 打开nifi.properties,添加以下配置项:
    nifi.sensitive.props.legacy.cipher.algorithm=PBEWITHMD5AND256BITAES-CBC-OPENSSL
    
  2. 修改目标加密算法及配套配置:
    nifi.sensitive.props.cipher.algorithm=AES/GCM/NoPadding
    nifi.sensitive.props.provider=BC
    nifi.sensitive.props.key.digest.algorithm=SHA-256
    nifi.sensitive.props.pbkdf2.algorithm=PBKDF2WithHmacSHA256
    
  3. 保存配置后重启NiFi。此时NiFi会:
    • 用旧算法解密原有敏感属性
    • 用新算法重新加密这些属性并持久化存储

4. 验证迁移结果

  • 重启后检查NiFi日志,确认无AEADBadTagException错误,同时旧算法的WARN日志消失
  • 修改任意敏感属性(比如某个控制器服务的密码),保存后重启NiFi,确认服务能正常读取该属性

5. 清理过渡配置(可选)

确认所有敏感属性都已用新算法加密后,可以删除nifi.sensitive.props.legacy.cipher.algorithm配置项,避免残留旧算法引用。

注意事项

  • 确保NiFi使用的JDK版本支持AES/GCM/NoPadding算法(JDK 8及以上默认支持)
  • 确认BouncyCastle(BC)加密提供者已正确配置(NiFi默认集成,无需额外安装)
  • 迁移过程中若出现异常,立即用备份的nifi.properties和flow.xml.gz恢复

内容的提问来源于stack exchange,提问作者arsaljalib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:15:09