gpt4 book ai didi

groovy - 如何在 Groovy 2.4 中计算 sha256 哈希

转载 作者:行者123 更新时间:2023-12-03 23:50:39 26 4
gpt4 key购买 nike

我正在尝试在 Groovy 2.4.16 版中计算 sha256 哈希。这是 jmeter 测试的一部分,这是它支持的 Groovy 版本,我认为我无法更改它。我知道 in Groovy 2.5 you can use code like this :

def challenge = verifier.digest('SHA-256');
log.info 'challenge' + challenge

但这在 2.4 中不起作用/不存在。我怎样才能在 Groovy 2.4 中做到这一点?

我用上面的代码得到的错误是:
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.digest() is applicable for argument types: (java.lang.String) values: [SHA-256]
Possible solutions: getAt(java.lang.String), next(), size(), toSet(), size(), toList()
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16]
at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72) ~[groovy-all-2.4.16.jar:2.4.16]
at javax.script.CompiledScript.eval(Unknown Source) ~[?:1.8.0_221]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:223) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:44) [ApacheJMeter_components.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:935) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:537) [ApacheJMeter_core.jar:5.1.1 r1855137]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.1.1 r1855137]
...

最佳答案

您可以使用 DigestUtils一般用于加密的类函数,特别是对于您的情况,它将是 DigestUtils.sha256Hex()

以下声明:

vars.put('foo', org.apache.commons.codec.digest.DigestUtils.sha256Hex('bar'))

将存储 bar 的 SHA-256 编码哈希线入 foo JMeter 变量,您可以通过 ${foo} 访问它需要时
vars代表 JMeterVariables类实例,它提供对当前线程上下文中所有 JMeter 变量的读/写访问。退房 Top 8 JMeter Java Classes You Should Be Using with Groovy文章以了解有关此内容和其他可用于 Groovy 脚本的 JMeter API 速记的更多信息。

关于groovy - 如何在 Groovy 2.4 中计算 sha256 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58527804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com