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

Mule 3迁移至Mule 4时SHA-256哈希计算代码的转换问题求助

Mule 4 对应实现方案

你原Mule3代码的逻辑是对varHash流变量的UTF-8编码字节数组做SHA256哈希,再将哈希字节数组转为十六进制字符串,Mule4下可以直接通过单条Set Payload组件实现,无需额外引入第三方依赖:

<set-payload value='%dw 2.0
import dw::Crypto
output application/java
---
Crypto::hashWith(vars.varHash encode "UTF-8", "SHA-256") as String {format: "hex"}' doc:name="Set SHA256 Hashed Payload"/>

对应逻辑说明

  • Mule4中废除了flowVars,统一使用vars获取流变量
  • 内置Crypto::hashWith方法替代原Guava类的哈希调用,避免第三方依赖兼容性问题
  • as String {format: "hex"} 对应原byte-array-to-string-transformer的转换逻辑,输出的十六进制字符串和原Guava默认输出完全一致

如果坚持沿用原Guava实现方式,需要先在项目pom中引入Guava依赖,再使用如下配置:

<set-payload value="#[com.google.common.hash.Hashing.sha256().hashBytes(vars.varHash encode 'UTF-8').toString()]" doc:name="Set Payload"/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:36:04