在JMeter中,javamd5散列函数并不总是有正确的沉默

在JMeter中,javamd5散列函数并不总是有正确的沉默,java,jmeter,md5,Java,Jmeter,Md5,在Jmeter中,我试图生成一个用于加载Mapi的令牌,但该令牌并不总是具有所需的长度。一个测试令牌是: “b7d5cd060b01289825e0ec1f6b126ca”,另一个是 “de8520a143583f1239b95bcc02b36eeb” 第二个长1个字符 我的职能: import java.util.Date; import java.security.MessageDigest; import java.math.BigInteger; long str = System.c

在Jmeter中,我试图生成一个用于加载Mapi的令牌,但该令牌并不总是具有所需的长度。一个测试令牌是:
“b7d5cd060b01289825e0ec1f6b126ca”,另一个是
“de8520a143583f1239b95bcc02b36eeb”

第二个长1个字符

我的职能:

import java.util.Date;
import java.security.MessageDigest;
import java.math.BigInteger;

long str = System.currentTimeMillis() / 1000L;
String Timestamp = Long.toString(str);
//System.out.println(Timestamp);




String seconds2 = str + "8fo9aw8uefawejfoi";
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(seconds2.getBytes());
BigInteger hash = new BigInteger(1, md5.digest());
String Token = hash.toString(16);
//System.out.println(Token);

vars.put("Timestamp", Timestamp);  
vars.put("Token", Token)

扩大我对问题的评论。。。尝试在Beanshell中使用此选项:

import java.util.Date;
import java.security.MessageDigest;
import java.math.BigInteger;

private void TokenGeneration(Long s) {
    String seconds2 = String.valueOf(str) + "8fo9aw8uefawejfoi";
    MessageDigest md5 = MessageDigest.getInstance("MD5");
    md5.update(seconds2.getBytes());
    BigInteger hash = new BigInteger(1, md5.digest());
    String Token = hash.toString(16);
    if (Token.length() == 32)
        vars.put("Token", Token);
    else 
        TokenGeneration(s);
}

long str = System.currentTimeMillis() / 1000L;
String Timestamp = Long.toString(str);
vars.put("Timestamp", Timestamp); 

TokenGeneration(str);

为什么不做一个递归函数来生成令牌,它将检查长度是否为16,如果为假,重复这个过程,如果为真,将令牌放入变量中?非常感谢您的快速回答!我使用了java(Beanshell),但令牌没有生成..:(愚蠢的错误…:-)我在16点检查长度,它永远不会是16只需替换为您所需的长度,我将编辑为32。对不起,伙计!