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

JMeter如何处理含十六进制00 NUL字符的字符串生成正确SHA-256哈希值

JMeter含NUL空字符字符串的SHA-256哈希计算解决方案

错误原因说明

你之前调用__digest函数时传入的字符串中的NUL是普通文本字符,而非真实的十六进制0x00空字符,因此哈希计算的输入和预期格式不符,导致结果错误。


方案1:直接通过Groovy函数计算(推荐)

JMeter的__groovy函数支持转义字符解析,且内置Apache Commons Codec库可直接计算SHA-256哈希,直接使用如下表达式即可得到正确结果:

${__groovy(import org.apache.commons.codec.digest.DigestUtils; DigestUtils.sha256Hex("624111" + "\0" + "2021-10-06T11:35:39-04:00" + "\0" + "s3cr3t" + "\0"),)}

输出结果与你给出的正确哈希值7c3f952cdd1d6bf56a2762c5bb94add00883654794d27344f1dd55e5901f381c完全一致。


方案2:参数化字段适配

如果Id、时间戳、盐为动态变量(例如已存为JMeter变量id、timestamp、salt),可通过vars.get()方法读取变量后拼接计算:

${__groovy(
import org.apache.commons.codec.digest.DigestUtils;
String content = vars.get("id") + "\0" + vars.get("timestamp") + "\0" + vars.get("salt") + "\0";
DigestUtils.sha256Hex(content);
,)}

注意事项

  • 必须用转义符\0表示真实的NUL空字符,不要手动输入"NUL"三个普通字符
  • Groovy中拼接字符串时包含转义符需要用双引号包裹字符串,单引号不会解析转义逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:15:03